Talk:CMDB

From ICO wiki
Jump to navigationJump to search

Ideel iseneset pole viga. Meeskonnal on väljamõeldud mida teha. Samas on tunne, et sarnast programmi kirjutavad ka mõned teised rühmad, mis annab hiljem kui on projekt valminud, võimaluse seda teiste rühma töödega võrrelda. Kuna meeskonnas on neli liiget siis peaks meeskond olema suuteline oma ideed teostama. Ka oleks tore kui oleks ära märgitud asjad mida oleks tore omada rakendusel. Näiteks kas plaanitkse pakkuda võimalust saada infot filmi kohta, kui palju seda on laenutatud/ostetud. Või siis kas on võimalik saada infot leanutajate kohta, kus oleks näha kui palju nad on kokku laenutanud jne. Ka võiks olla märgitud kas tegemist on mobiilse rakendusega, windows forms, WPF või millegi muuga. Äriliselt kui meeskond suudab oma rakendust kuidagi teistest eristuma panna, siis võib sellest isegi rahalist kasu saada.

Retsensiooni kirjutas "Invaders" grupp

Analüüsi retsensioon by .NOT

Antud analüüs on üsna lühike, kuid piisavalt arusaadavalt on toodud välja loodava rakenduse eesmärk ning idee. Võimalusi tundub konkreetses rakenduses olevat palju, näiteks võimalus filmi laenutada tähtajaliselt või tähtajatult, filmidel on mitu koopiat eri formaatides ning igasugune filme puudutav tehniline info. Lahendused, mis meeskonna meelest peavad valmis saama, tunduvad antud aja jooksul reaalselt teostatavad olevat. Idee IMDB- st igasuguse filme puudutava info pärimine, pole halb, sest annaks kasutajale paremaid võimalusi endale sobivate filmide leidmisel, kuid siiski, nagu oli ka analüüsis meeskonna poolt mainitud,ei pruugi see väga lihtsaks osutuda. Seega arvatatavasti "Nice to have"'i laialdast funktsionaalsust (rääkides päringute koostamisest, informatsiooni kuvamisest ja otsingule parameetrite lisamisest), ei pruugita antud aja jooksul 100% valmis saaada. Kuna rakenduse "Must have" nimekirjas olevaid ülesandeid pole palju, jõutakse ilmselt lõpptootesse ka mõned lisa funktsionaalsused paigaldada. Siinkohal tooksin kindlasti välja filmide otsimise võimaluse, vähemalt ühe parameetri järgi, milleks on filmi nimi. Meeskonna jaoks ei ole ka üks olulisemaid asju mugav ja ilus kasutajaliides, mis on veidi kummaline, sest esimene asi, mida kasutaja märkab ongi graafiline disain. Mida mugavam ja lihtsam on rakendust kasutada, seda rohkematele inimestele on see meelejärgi, järelikult tuleks kasutajaliidesele siiski rohkem rõhku panna.


Analüüs by Agendid

Meeskond valis teemat „Rakendus, mis näitab kogu info filmidest“. Juba ise teema valik on meeldiv: tänapäeval võib enne filmi vaatamist uurida, mis film on populaarsem või huvitavam. Analüüsis märkasin, et rakendusel on võimalus lisada kuulutus kui kasutaja käib näiteks kinos või ostab filmi – hea idee.

Lisaks meenutatakse koopia kohta paar asjad, aga milleks see vaja, ei saa aru. Minu arvates tuleb teha, nagu tabeli reiting-ud, kus on võimalik näha kui palju inimesi juba on näinud seda filmi, kes soovitab vaadata, kel on soov osta, kes on juba ostnud ja nii edasi. Registreerimisel ja sisselogimisel on kõik ilusti arusaadav.

Kuigi „ Mugav ja ilus kasutajaliides“ punkt asub „Nice to have“ loodame ikkagi, et meeskonnale püüab ja tegib vaate nii hästi kui võimalik, sest sellel on kasutaja jaoks tähtis roll. Ja veel - „Otsimine“ oleks hea, kui on olemas ja töötab, sest kõikidel veebilehel on „Search“ koht, mis aitab kiiresti filmi leida.

Rakendus täidab ülesande nõudeid, projekt on üsna mõistlikult dokumenteeritud. Üldmulje on hea, aga praktikas kasutust veel ei leia, vähemalt senikaua kuni korralik andmebaas on ehitatud ja programmi loogika vastavalt realiseeritud. Wiki leht on hästi koostatud. Lisatud oli küllaltki palju funktsionaalsust, midagi kriitilist silma ei jäänud.

Prototüübi analüüs

Alustaksime retsenseerimist mainides seda, et tekkis tõsiseid probleeme programmi avamisega. Oleme tegelenud sellega kokku mitu tundi ja ikka ei hakka programm piisavalt hästi tööle. Algul tundus, et probleem oli andmebaasis, mille korda saamine võttis tunni, kuna me pole veel kõige kogenenumad programmeerijad ning oli vaja täiendavat abi õppejõult, millest kahjuks ei olnud palju abi. Tundub, et andmebaas ei ole võimeline funktsionaalselt töötama. Koodi autor ise väitis, et programm läks ilusti tööle, kuid, nagu eelpool mainitud, ei suutnud meie seda saavutust eriti kiirelt ega ka korralikult korrata.

Pärast pikka andmebaasi probleemi lahendamise proovimist, selgus meil et prototüübi tööle saamiseks oleks arendajal vaja ära parandada castimise probleemid ehk muutujad peaks ümber int tüüpi castima. See oli tegemata meetodites MuudaFilmi(Film muudetav) -> hinnang ja LisaUusFilm(Film lisatav) -> hinnang, kus peaks mõlemad hinnangud olema castitud int tüüpi muutujateks. Peale seda keeldus töötamast Refresh() meetod MainWindow.xaml.cs-is, mille välja kommenteerimine aitas mõneks ajaks, kuid kui see meetod puudus programmist, kadus ka terve programmi funktsionaalsus. Refresh() meetodil peaks nimelt viga olema XAML poolel, kuna seal toimub Data Binding. Refresh() meetodita programmi kasutades saab järgmise vea andmebaasi lisamisel, mil on vaja konkreetsemalt Refresh() meetodit kasutada.

Disainis, kahjuks, ei paista eriti palju läbi mõeldust. Seda vaadates tekib kogu aeg tunne, et nuppude ning kastide paigutusele pole palju ressurssi jaotatud. Akna suuruse muutmisel ei muutu kahjuks sisu dünaamiliselt, seega ei ole hea kasutada rakendust erinevate suurustega ekraanidel, aga loodetavasti on dünaamiline akna sisu lõpptootes ( Title="MainWindow" Height="454" Width="739"> ). Vaadates rakendust 1440 x 900 resolutsioonilise monitoriga, tekib rakendust laiemaks venitades ühe TextBox'i ja ühe CheckBox'i imelik ja mittevajalik ümberpaigutamine. Nimelt liigub "Osta" CheckBox kõvasti allapoole ning "Hinnang 1-10" TextBox nihkub mitmekümne piksli võrra paremale. Tab nimega "Laenutused" sisaldab TextBox'e, mis on ebakvaliteetselt paigutatud, kuna akna suurust muutes liigub TextBox, mille väärtuseks on "Kellele" mööda rakenduse akent ringi. Kui tab-iga programmis liikuda, siis elemendid võiksid olla kasutajaliideses loogiliselt paigutatud (st et nad liiguksid järjest). See on pisikene asi aga muudab programmi kasutamise mugavamaks inimestele, kes eelistavad rakendustes ringi liikuda klaviatuuriga. XAML- i nuppude nimetustes puudub ühtne stiil, mistõttu on veidi raske koheselt koodi seest aru saada, mis nupp midagi teeb. Soovituslikult võiks nimi kajastada tegevust, sest nii oleks lihtsam programmi jagada teistega. Laenutamise lisamisel saab programm nullpointeri {"Object reference not set to an instance of an object."}. Iga lisamine tekitab vähemalt ühe exceptioni. Filmide lisamisel, väljade tühjaks jätmisel, saab kasutaja teate "Muudatused salvestatud", kuigi reaalseid andmeid pole rakendus vastu võtnud.

Positiivne on see, et aasta validatsioon töötab, s.o. kui sisestada film, mille valmimisaastaks väidetakse aasta väiksem kui 1900 või suurem kui 2030, siis ei luba rakendus lisada filmi. Ka hinnangu valideerimine töötab, kuigi nime ei kontrollita ning kasutajal on võimalus saata tühi väli. IMDB-st filmide kohta andmete saamiseks on kasutatud tasuta saada olevat ASP. net IMDB Scraper- it, mis on küll lihtne, kuid igati arukas lahendus ning selle kasutamiseks on kõik õigused olemas.Miskipärast ainult TextBox'idel, mille väärtus peaks olema tüüpi int, kontrollitakse kas TextBox'i on midagi sisestatud või mitte. Kui uurida TextBox'e, mille kaudu sisestatakse stringilist väärtust (näiteks nimi, kellele, kellelt jne.), siis ei toimu kontrolli, kas kasutaja on sisestanud midagi või mitte. Filmi laenutuse lisamisel jookseb programm kokku: uus.ID = lisatav.ID;

Üsna palju leidub koodi, mis on teadmata põhjustel välja kommenteerinud, mis tekitab küsimuse, kas need funktsionaalsused ei tööta hetkel ja tulevad juurde lõpuni viimistletud programmi või polegi need mõeldud töötamaks.

Kommenteerides Must Have List'i sisu ja reaalseid tulemusi prototüübis, siis a) Filmide lisamisest ja kuvamisest ei tööta kumbki, kuid samas on eeldused selle valmimiseks lõpp-tootes siiski täiesti olemas, arvestades sellega et kasutajaliides on olemas. b) Samuti ei tööta kulutuste lisamine ja kuvamine, kuid eeldused on samuti olemas valmimiseks, sest kasutajaliides on olemas. c) Filmide laenutuse lisamine jooksutas programmi kokku d) Graafiline kasutajaliides ei ole kõige köitvam, kuid vähemalt on see valmis tehtud. Siiski, jätab see natukene liiga külmaks. e) Hinnangu andmisel töötab validatsioon, kuid kuna filmide lisamine ja kuvamine ei tööta, siis ei ole midagi funktsionaalset teha selle hinnanguga.

Nice to Have list-ist on realiseeritud kahjuks ainult IMDB-st info pärimine. Ootaks lõpptootesse rohkem Nice to Have funktsionaalsuseid!

Lõppkokkuvõttes läks programm peale pikka pusimist õnneks siiski tööle, kuid see jookseb pidevalt kokku ning täiendamise vajadus tundub olevat suur. Siinkohal soovikski teada, kas tegijal/ tegijatel endil töötab programm nii, nagu nad seda soovivad, sest seda testides kerkis esile palju madalkohti nii koodis, kui ka kasutajaliideses, mis otseselt või kaudselt segavad edukat programmi kasutamist. Lõpptoote täielikuks valmimiseks on veel palju tööd vaja ära teha, eelkõige siis Must Have nimekirja funktsionaalsuste töövalmidus. Kuna kuuldatavasti on see programm suuresti või lausa täielikult ühe mehe töö, tuleb siiski tegijat kiita, sest sellise programmi valmistamine võtab siiski aega ning nõuab kannatust ja oskust ning mitu programmeerija pead on kindlasti parem kui kõigest üks.

Retsenseeris .NOT rühmitus


Vastus prototüübi analüüsile

Rakendus töötab.

Kuna teil rakendus ei töötanud nii nagu oleks pidanud, siis olete sellest valesti aru saanud.

1) Muutmise eelduseks on, et filme või laenutusi kuvataks. Tegelikult salvestakse muudatused alati, kui kasutaja vahetab rida olenemata sellest, kas kasutaja on muudatusi teinud või mitte. Sellise lahenduse pakkus välja meie õppejõud. Kui kasutaja muudab filmi, rida ei vaheta ja paneb akna kinni, siis neid muudatusi rakendus ei salvesta. Viimase probleemi lahenduseks ongi "muuda" nupp. Kui kasutaja vajutab sellele, siis vahetub rida ja muudatused salvestatakse.

2) Filme peaks kasutaja lisama vajutades "lisa" nupule.

3) IMDB-st info pärimine puudub rakenduses. Väike test näitas, et see kood töötab, ja et selle lisamine rakendusse ei tohiks väga raskeolla, aga pärimine oli veidi aeglane ja vahel võib tekkida probleeme. Võimalik, et lõpptootes on see mingil kujul siiski olemas.


Mis puutub kasutajaliidesesse, siis see on tõesti prototüübis jama. Ilmselt oleks pidanud sellele juba alguses palju rohkem tähelepanu pöörama. Üsna kindlalt on lõpptootel (palju) parem kasutajaliides. Väljakommenteerimise põjusi oli kolm.


1) Mõnes kohas ei ole kindel, kas kood teeb programmi pigem paremaks või halvemaks.

2) Ühes kohas töötas kood osaliselt nagu oleks pidanud. Hiljem on ilmselt kergem parandada osaliselt töötavat koodi kui täiesti uuesti alustada.

3) Muudatusi tehes on parem variant välja kommenteerida, kui ära kustutada midagi. Programmeerija võib leida, et varasem kood oli ikkagi parem. Hiljem asendas need osad uus kood ja väljakommenteeritud osad jäid kogemata prototüübist eemaldamata.


Nice to have funktsionaalsustest töötab sorteerimine suurepäraselt.

Õppejõu kommentaar

1) Andmebaasiga tekkisid probleemid, kuna tagavarakoopia on tehtud kasutades MS SQL Serveri uuemat andmebaasimootorit, võrreldes sellega, millega prooviti andmebaasi taastada. Sellist versiooni tuge aga ei ole, et taastada andmebaasi vanema andmebaasimootoriga, kui see on loodud ja selles on olemas loogika.(Ehk näiteks tagavarakoopia, mis on tehtud SQL Server 2008 versiooniga, ei saa taastada SQL Server 2005ga). Seetõttu palusin küsida CMDB'lt skripte, et saaks andmebaasi võimalikult valutult luua.

2) See versioon, mis esitati prototüübiks ja mida retsenseeriti ja mida mina ka praegu kasutan, sisaldab retsenseerijate poolt mainitud vigu. Ainult väike märkus. Neid väärtuseid ei tuleks cast ida, vaid väärtuse saamiseks küsida muutuja.Value. (Mitte (int)muutuja).

Lõpptoote retsensioon

Algatuseks tooks kohe välja asjaolu, et võrreldes lõpptoodet prototüübiga, on lõpptoode silmnähtavalt edasiarenenud ning kasututatavamaks muudetud. Mis tärkab kohe silma, on disain, millega on nähtavasti palju vaeva nähtud ning millegagi pole ülepakutud ja miski ei riiva silma. IMDB- st andmete pärimine ei tööta just kõige paremini, sest see võtab kaua aega, kuid selles ei saa otseselt programmi loojaid süüdistada. Noriks selle kallal, et kui sisestada film, millel on mitu žanrit, tekib ühe kirje asemel nii mitu kirjet (erinevatele ridadele tekib nii mitu korda filmi nimi), kui mitu žanri on filmil. Filmi sisestamisel kontrollib aasta validatsioon filmi valmimisaastat ning kui väidetakse aasta väiksem olevat kui 1900 või suurem olevat kui 2030, siis ei luba rakendus lisada filmi ning programm lõpetab töö. Hetkel on aga halb see, et kui sisestada film, mis on tehtud nt. 2015. aastal(film ei pruugi veel tegemisel olla), siis rakendus lubab seda teha. Veel valmimata filmide lisamise võimalus pole paha, aga lubatud valmimisaasta võiks olla praegusele aastale liites maksimum 2 aastat, mitte rohkem. See on väike asi, kuid tundub vägagi loogiline olevat. Kommenteerime Must Have List'i sisu ja reaalseid tulemusi lõpptootes:

a) Filmide lisamine ja kuvamine töötavad mõlemad.

b) Samuti töötab kulutuste lisamine ja kuvamine. Kahe eelneva punkti puhul on jällegi näha suurt edasiminekut prototüübist.

c) Filmide laenutuse lisamine jooksutas programmi varem kokku. Nüüd ta seda ei teinud.

d) Graafiline kasutajaliides on valmis juba prototüübist, kuid seda on tunduvalt uuendatud ning välimus on meie arust palju parem.

e) Hinnangu andmisel töötab validatsioon ning kuna filmide lisamine ja kuvamine töötab, erinevalt prototüübile, siis on hinnangu kasutamine igati funktsionaalne.


Võrreldes prototüübiga on Must Have funktsionaalsus kõvasti edasi arenenud ning üldjoontes töötab kõik hästi.

Kommenteerime Nice to Hace List’i sisu ja reaalseid tulemusi lõpptootes:

a) Mugav ja ilus kasutajaliides on tõepoolest teostatud ning välimuse poole pealt pole midagi negatiivset öelda. Küll aga ei saa muuta akna suurust, mis oleks suhteliselt lihtne lahendus, kuid kindlasti mitte hea lahendus.

b) IMDB-st info pärimine töötab - info salvestatakse andmebaasi. Kuigi see võib aega võtta ja ei tööta alati kõige paremini, on see siiski teostatud.

c) IMDB-st päritud info kuvamine töötab kenasti, kuigi filmi nimi kuvatakse ühe filmi mitme žanri puhul mitmele kirjele.

d) Tehnilise informatsiooni lisamine ja kuvamine töötab.

e) Otsimine - Nime, aasta, režissööri ning näitlejate järgi. Otsimine toimib nime ning aasta järgi.

Üldiselt on Nice to Have funktsionaalsused programmis saavutatud ning see on positiivne.

Lõpptoote kaitsmise kohta pole midagi halba öelda, suudeti ära rääkida kõige olulisem programmi kohta, ka miinuskohad toodi välja ning näidati, mida ja kuidas on võimalik rakendusega teha. Küsimustele vastati korrektselt ning räägiti ka sellest, mida oli kõige raskem teostada, näidates ka koodipoolt.

Lõppkokkuvõttes on see kahe inimese poolt tehtud programm kindlasti tunnustust väärt. Kui vaadata prototüüpi ning lõpptoodet, on suhteliselt piiratud ajaga suudetud rakendust tunduvalt täiendada, vigasid hallata ning programmi kasutajaliidest parandada. Mis inimesele hakkab programmi kasutades esimene silma, ongi kasutajaliides, mis siinpuhul on väga hästi teostatud.Vväike probleem on küll see, et akna suurust ei saa muuta, kuid aja puuduse tõttu on arusaadav, et kõik lahendused ei saavutatud päris sellistena nagu nad ideaalis võiksid olla. Kiitused .NOT grupi poolt!