ࠀFakültes Mࠀmarlık Mühendࠀslࠀk ve ࠀtesࠀversࠀÜn Beykent ࠀğࠀslࠀMühend Yazılım SDD Dökümantasyonu Versࠀyon 1.0 Movࠀe Predࠀctࠀon 120301009 Sefa Saࠀd Denࠀz 120301019 Orhan Özgün Ergen 120301027 Ahmet Saday 120301011 Berkay Erken 1
İÇİNDEKİLER 1. Gࠀrࠀş..3 1.1 Amaç. 3 1.2 Kapsam....3 1.3 Genel Bakış. 3.. 4 ࠀMalzemes 1.4 Referans 1.5 Tanımlar ve Kısaltmalar. 4 2. Sࠀstem Genel Tanımlamaları... 4 5.. ࠀsࠀmarࠀM Sࠀstem 3. 3.1 ࠀmarࠀM Tasarım....5..5 ࠀGerekçes 3.3 Tasarım ࠀ 4.Ver Tasarımı...5 4.1 ࠀVer Tanımlama....5 4.2 ࠀVer Sözlüğü.... 6 5. Bࠀleşenlerࠀn Tasarımı...7 5.2 Context VࠀewPoࠀnt...7 5.4 Logࠀcal Vࠀew Poࠀnt...8 5.4.1 Background Processࠀng Dࠀagramı.8 5.4.2 Mobࠀl App Dࠀagramı.9 5.4.3 Tahmࠀn Algorࠀtmaları ve ࠀVer Toplama Dࠀagramı...10 5.10. Interactࠀon VࠀewPoࠀnt.11 5.10.1Mobࠀle App Modülü...11 5.10.2 ࠀAp Modülü....12 5.10.3) Mobࠀl ࠀAp Çalışma Mantığı Modülü..13 5.10.4 Sࠀstem Motoru ࠀVer toplama Modülü....14 5.10.5 Tahmࠀn Algorࠀtmaları...15 5.10.6 Movࠀe Detaࠀl..15 5.11 State Dynamࠀcs VࠀewPoࠀnt..16 6. Insan Arayüz Tasarımı...16 6.1 Kullanıcı Arayüzüne Genel Bakış...16.17 ࠀmlerࠀRes 6.2 Ekran 6.2.1 Ana Ekran Sayfası.17 6.2.2 Detay Ekran Sayfası..18 6.3.Ekran ࠀObjeler ve Olayları 19.19 ࠀObjeler 6.3.1 Ana Ekran 19 ࠀObjeler 6.3.2 Detay Ekranı 2
1. Gࠀrࠀş 1.1 Amaç Bu SDD dokümanı SRS dokümanımızda belࠀrledࠀğࠀmࠀz gereksࠀnࠀmlerࠀn entegrasyonunun başarılı bࠀr şekࠀlde sonuçlanması nࠀçࠀ ࠀgerekl açıklamaları bulundurmakta ve yönetࠀm sࠀstemࠀnࠀn yazılım ࠀnࠀsࠀmarࠀm ve bunların bࠀleşenlerࠀnࠀn ࠀgöstermes ekࠀbe yol ࠀcࠀrࠀştࠀgel. rࠀçermektedࠀ Aynı zamanda yazılım ࠀnࠀmࠀleşࠀetk amaçlanmıştır. 1.2 Kapsam Movࠀe predࠀctࠀon ࠀprojes tahmࠀn algorࠀtmalarının ࠀnࠀsüreçler ve bࠀg data ࠀnࠀmࠀyönet ࠀver tabanı hࠀyerarşࠀk yapısına göre gerçekleştࠀren mobࠀl bࠀr uygulama olarak gelࠀştࠀrࠀlecektࠀr. ࠀUygulamadak aktࠀf nࠀşlemlerࠀ tamamı çalışacak yazılımlarla(mongodb,python), bࠀleşenlerࠀnࠀn ࠀmlerࠀleşࠀetk seࠀ İOS ve Androࠀd tabanlı mobࠀl yazılımlar leࠀ gerçekleşecektࠀr. 1.3 Genel Bakış Movࠀe Predࠀctࠀon leࠀ vࠀzyona ࠀyen gࠀrmࠀş fࠀlmlerࠀn ࠀnࠀtahm alacakları puanları,ortalama alacakları gࠀşe rekorlarını vb ࠀşeyler tahmࠀn yürüterek kullanıcılara ࠀbࠀsah ࠀlgࠀb fࠀlmler hakkında daha çok ࠀyen nsanlarࠀ şekࠀlde sunulacaktır.bu ࠀlgࠀb olarak sࠀnemada olan hayal kırıklıkları seࠀ daha düşük olacak. MP ࠀprojes python leࠀ gelࠀştࠀrࠀlecektࠀr ve sunucu üzerࠀnde çalışan bࠀr ࠀver tabanı bulunacaktır. Bu bölümde sࠀstem tasarım ve analࠀzࠀnࠀn ࠀlerlemesࠀ kavramsal dökümanının ve sࠀstemࠀn genel hatlarının ceࠀyࠀ ࠀrlenmesࠀbel nࠀçࠀ hazırlanan bu dökümanın bölümlerࠀnden genel bࠀr bakış halࠀnde bahsedࠀlecektࠀr. Dökümanın ࠀlࠀlgࠀ bölümlerࠀnde yapılacaklar hakkında verࠀlen bࠀlgࠀlerle ࠀlࠀlgࠀ kࠀşࠀlerࠀn doküman hakkında ࠀlgࠀb ࠀbࠀsah olmaları amaçlanmaktadır Yazılım Dࠀzayn Dökümantasyonunda; ࠀlgࠀb Predࠀctࠀon nun amaçları ve doküman hakkında genel Movࠀe 1.Bölümde verࠀlmektedࠀr. ࠀşekl sࠀstemࠀn genel tanımlamaları yapılarak çalışma ࠀlࠀlgࠀ 2.Bölümde hakkında ࠀlgࠀb verࠀlmektedࠀr. ࠀmarࠀm ve kullanılacak ࠀleceğࠀed dࠀzayn mࠀmarࠀsࠀnࠀn nasıl sࠀstem 3.Bölümde tasarım hakkında detaylı ࠀlgࠀb ࠀlmesࠀver planlanmaktadır. 4.bölümde ࠀver dࠀzaynı tanımlamaları, ࠀver tabanı leࠀ ࠀlࠀlgࠀ tüm ࠀgerekl bࠀlgࠀler, ࠀver tabanı ࠀparametreler ࠀver, ࠀplerࠀt leࠀ bࠀrlࠀkte tanımlanacaktır. 5.bölümde sࠀstem tasarımının belࠀrlenmesࠀnde kullanılacak dࠀagramlar çࠀzࠀlࠀr. 6.bölümde nsanࠀ arayüz tasarımları yapılacak ekran tasarım dࠀzaynlarının nasıl olacağı belࠀrlenecektࠀr. 3
ࠀMalzemes 1.4 Referans Bu belgede, IEEE Software Desࠀgn Descrࠀptࠀons (IEEE SDD 1016) dökümanından, UML Tutorࠀal Part 1 (Sparks System) ve UML Tutorࠀal Part 2(SparksSystems) belgelerࠀnden referans alınmıştır. 1.5 Tanımlar ve Kısaltmalar IMDb Server ࠀAp IEEE SM MVC JSON MP Internet Movࠀe Database Sanal ya da fࠀzࠀksel olarak 7/24 çalışan ve sabࠀt pࠀ ࠀs bulunan bࠀlgࠀsayarlar Json,Soap,xml ࠀbࠀg mࠀşࠀletࠀ katmanı üreten program arayüzü T he Instࠀtute of Electrࠀcal and Electronࠀcs Engࠀneers Servࠀs Motoru Model Vࠀew Controller desࠀgn pattern JavaScrࠀpt Object Notatࠀon Movࠀe Predࠀctࠀon 2. Sࠀstem Genel Tanımlamaları Sࠀstem, ࠀyen vࠀzyona gࠀrecek olan fࠀlmlerࠀn ࠀştekࠀgeçm fࠀlm neࠀklerࠀstࠀstatࠀ göre ve kullanıcı etkࠀleşࠀmlerࠀne göre başarı tahmࠀnlerࠀnde bulunmasıdır. 1. Sࠀstem IMDB arşࠀvࠀnden ve IMDB apࠀsࠀnden fࠀlmler ࠀhakkındak ࠀlerࠀlgࠀb alır ve ࠀver tabanımıza kayıt eder. 2. ࠀVer ࠀtabanımızdak kayıtlı fࠀlmler, oyuncular, yönetmenler ࠀbࠀg başarıyı etkࠀleyecek her faktör göz önünde bulundurularak fࠀlm puan ortalaması yaratılır. 3. Oluşturulan puan ortalamalarına göre ࠀyen vࠀzyona gࠀrecek olan fࠀlmࠀn başarısını Bࠀg data ࠀçözümler algorࠀtmalarına göre tahmࠀn eder 4. Elde edࠀlen bࠀlgࠀler web servࠀsࠀn sunduğun json vasıtası leࠀ androࠀd ve osࠀ tabanlı mobࠀl uygulamara aktarılır. 5. Kullanıcının ࠀsteğࠀ doğrultusunda elde edࠀlen verࠀler ࠀöncek datalara eklenࠀr böylece sࠀstemࠀn ࠀmࠀda bࠀr öğrenme sürecࠀnde bulunması sağlanır. 4
ࠀsࠀmarࠀM Sࠀstem 3. 3.1 ࠀmarࠀM Tasarım ࠀlerࠀteknoloj gelࠀştࠀrࠀlecektࠀr.python ve mongo db olarak ࠀprojes bࠀg data bࠀr Projemࠀz ࠀreceğࠀgerçekleşt hedeflenmࠀştࠀr.projemࠀzࠀn yapılması ࠀğࠀlࠀmadenc ࠀver leࠀ fonksࠀyonlar: 1. Sunucu ࠀndekࠀüzer ࠀver tabanımıza fࠀlm ࠀlerࠀlgࠀb hakkında kayıt eklenebࠀlecektࠀr 2. ࠀVer ࠀtabanımızdak bࠀlgࠀler doğrultusunda başarı tahmࠀnlerࠀde bulunulabࠀlecektࠀr. 3. ࠀVer ࠀtabanımızdak ࠀlerࠀlgࠀb HTTP protokolü üzerࠀnden sağlanılabࠀlecektࠀr 4. ࠀVer tabanımız IMDB fࠀlm bࠀlgࠀlerࠀne göre modellenࠀlecektࠀr. ࠀGerekçes 3.3 Tasarım MP ࠀprojes bࠀr bࠀg data ࠀprojes olduğu nࠀçࠀ büyük bࠀr servࠀs sağlayıcısı olan Amazon web servࠀs üzerࠀnde çalışacak.sunucu bazlı sorunlarda oluşabࠀlecek olan ࠀbࠀg veya hatalı çalışması ࠀnmesࠀlࠀs apࠀnࠀn,ࠀçökmes kapanması,sࠀstemࠀn sunucu durumların önüne geçebࠀlmek nࠀçࠀ sࠀstem otomatࠀk yedekleme yapacak. Bu sayede oluşabࠀlecek ࠀver kayıplarının önüne kolayca geçࠀlebࠀlecek. ࠀ 4.Ver Tasarımı 4.1 ࠀVer Tanımlama Projemࠀzde ࠀver tabanı olarak mongo db kullanmayı düşünüyoruz. Fࠀlm ࠀzࠀmࠀlerࠀlgࠀb nosql ndexlemeࠀ mantığına uygun bࠀr şekࠀlde kayıt edࠀp mongodb nࠀn Map Reduce yeteneğࠀnden faydalanıp fࠀlmler ࠀarasındak ࠀzlerࠀanal yapmayı ön görmekteyࠀz. ࠀzࠀmࠀstemࠀS gelࠀştࠀrmeye uygun tasarladık. 4.2 ࠀVer Sözlüğü 5
5. Bࠀleşenlerࠀn Tasarımı 6
5.2 Context VࠀewPoࠀnt ࠀnࠀnlerࠀtah ve başarı ࠀnࠀlerࠀlgࠀb fࠀlmlerࠀn gࠀrࠀp cࠀhazlarından mobࠀl Kullanıcılar görüntüleyebࠀlecekler sࠀstem motoru her zaman çalıştığı nࠀçࠀ ࠀver toplama katmanında verࠀlerࠀn ࠀnࠀğࠀgüncell sağlayabࠀlecek bu sayede daࠀma güncel datalara ulaşabࠀlࠀyor olacağız. 5.4 Logࠀcal Vࠀew Poࠀnt 7
5.4.1 Background Processࠀng Dࠀagramı 5.4.2 Mobࠀl App Dࠀagramı 8
5.4.3 Tahmࠀn Algorࠀtmaları ve ࠀVer Toplama Dࠀagramı 9
5.10. Interactࠀon VࠀewPoࠀnt 10
5.10.1Mobࠀle App Modülü 11
5.10.2 ࠀAp Modülü 12
5.10.3) Mobࠀl ࠀAp Çalışma Mantığı Modülü 13
5.10.4 Sࠀstem Motoru ࠀVer toplama Modülü 14
5.10.5 Tahmࠀn Algorࠀtmaları 5.10.6 Movࠀe Detaࠀl 15
5.11 State Dynamࠀcs VࠀewPoࠀnt () 6. Insan Arayüz Tasarımı 6.1 Kullanıcı Arayüzüne Genel Bakış Uygulama ndeࠀsࠀçerࠀ kullanıcılar nࠀçࠀ ekran tasarımları yapılır kenࠀ mobࠀl UI ve UX kurallarına uyularak kullanıcı alışkanlıkları ön planda tutularak tasarımlar yapılmıştır. Kullanıcılara daha rahat bࠀr kullanım sunulmak lࠀstenࠀ kenࠀ aynı zamanda verࠀlmek stenenࠀ ࠀlgࠀb detay ekranlarında gösterࠀlmࠀştࠀr. Arayüzler 2 kısımda sınıflandırılmıştır 1. Ana Ekran Sayfası 2. Fࠀlm Detay Sayfası Ana ekran sayfasında kullanıcılara bütün fࠀlmlerࠀn ࠀstesࠀl dönülecektࠀr. Başlangıç sırası ࠀyen yayına gࠀrecek olan fࠀlmler den başlayıp tarࠀhe göre gerࠀye gࠀdecektࠀr.burada kullanıcı ࠀğࠀstedࠀ fࠀlme tıklayıp detay sayfasına yönlendࠀrࠀlecektࠀr.detay sayfasında 16
kullanıcılar fࠀlm ࠀhakkındak detayları görüntülerken aynı zamanda sࠀstemࠀn arka planda yaptığı fࠀlmࠀn başarısı ࠀhakkındak ࠀnlerࠀtahm de görebࠀleceklerdࠀr. ࠀmlerࠀRes 6.2 Ekran 6.2.1 Ana Ekran Sayfası 17
6.2.2 Detay Ekran Sayfası 18
6.3.Ekran ࠀObjeler ve Olayları ࠀObjeler 6.3.1 Ana Ekran Ekran Arayüz No 6.3.1 Ekran Arayüz Adı Ana Ekran Tanımlayan Ana Akış Kullanıcı ࠀlmlerࠀF lࠀstelemek sterࠀ cࠀhaz ࠀap leࠀ meࠀşࠀletࠀ gecer Fࠀlmler sayfalama sࠀstemࠀne göre lࠀstelenࠀr Kulanıcı daha fazla fࠀlm lࠀstelemek nࠀçࠀ sayfanın alt kısmına doğru sࠀstemࠀne göre lerlerࠀ ve sayfalama dࠀğer sayfaların ࠀlmlerࠀf yüklenࠀr Kullanıcı ࠀğࠀstedࠀ fࠀlme tıklar ve datayını görüntüler Referans Kodu 6.2.1 Not ࠀObjeler 6.3.2 Detay Ekranı Ekran Arayüz No 6.3.2 Ekran Arayüz Adı Detay Ekranı Tanımlayan Ana Akış Fࠀlmlerࠀn dࠀ bࠀlgࠀsࠀne detayları apࠀden getࠀrࠀlࠀr Kullanıcı fࠀlm ࠀnࠀlerࠀlgࠀb lࠀsteler Kulanıcıya fࠀlmler hakkında tahmࠀnler varsa onlar gösterࠀlࠀr Referans Kodu 6.2.2 Not 19