Oponentura -- RentAir
Transkript
Oponentura – RentAir Petr Pavlů 21. dubna 2010 1 Úvod Projekt RentAir je jednoduchý informačnı́ systém na rezervaci letadel a leteckých služeb. Je vyvı́jen jako semestrálnı́ projekt do předmětu X36RSF. Stojı́ za nı́m studenti Jan Hlaváček, Miloš Kovalčik, František Kraml, Petr Kraus, Martin Kropuch, Juraj Leškanič, Miroslav Moňok, Marek Polcar, Dominik Salai, Ondřej Semmler, Jiřı́ Vaněk a Michal Zykov. Tento report je postupným průchodem přes dokumentaci a implementaci tohoto projektu. Obsahuje popis chyb, poznámky, kde by šlo udělat něco lépe, a také několik otázek, na které by si měli autoři odpovědět. 2 Vision dokument • V popisu správce systému je popsán systém údržby produktů a atributy zákaznı́ků (spolehlivost a důležitost klienta). Toto nenı́ nikde dále reflektováno. Dalo by se očekávat, že atributy zákaznı́ka se odrazı́ např. v class diagramu. • Z části o financı́ch vyplývá, že jedna objednávka může obsahovat vı́ce letadel. To je nesprávně vymodelováno v class diagramu. Dále se zde pı́še o tzv. klubové kartě, ta opět nenı́ dále zpracována. • Slovenština nenı́ vhodný jazyk pro tento dokument. • Typografické chyby: Polovina seznamů je napsána správně, polovina ne. Chybı́ pevné mezery za jednopı́smennými předložkami. 3 Class diagram • NamesOfProducts by bylo dobré přejmenovat na TypesOfProducts. Prvnı́ nedává smysl, protože Product má své jméno určené již pomocı́ atributu name. • Ve vztahu Reservation–StateOfReservation jsou zaměněny násobnosti. • Spojenı́ User–Reservation má prohozeny násobnosti. V database diagramu je to již správně. 1 • U třı́dy User je přebytečný atribut rights (práva jsou vyjádřena výčtem RightsOfUser). Pokud se tedy nejedná o nějaké dalšı́ podrobnějšı́ dělenı́ práv. . . • U výčtu StateOfPlace nenı́ zřejmý význam stavu taken. • Několik překlepů: adress“, Rezervation“. ” ” • Chybı́ třı́dy pro návštěvnı́ knihu. • Hesla nejsou solená! 4 Database diagram • Zvážil bych vynechánı́ tohoto diagramu, vše je vyjádřeno již v class diagramu. • Chybı́ atribut estate u třı́dy Plane, který byl v class diagramu. Dále chybı́ typ produktu. • Sůl, sůl, sůl! 5 Use case diagram • U aktéra Registered user je nejasné, jak Edit own reservation rozšiřuje Create reservation. Proč je to u administrátora naopak? • U administrátora by se pravděpodobně mohly vynechat některé akce, protože je odvozen od registrovaného uživatele. • Překlepy: presonal“. ” 6 COCOMO Autoři předpokládali napsánı́ 3 000 řádků kódu. Nynı́ jich majı́ přibližně 2 300 (bez testů). Zdá se tedy, že jejich odhad byl správný. 7 Instalačnı́ přı́ručka • Typografické chyby: spojovnı́k v mı́stě pomlčky, nevhodná volba typů a řezů pı́sma, špatně psané seznamy, relativně úzké okraje stránky, . . . • Jelikož se jedná o návod pro unixový systém, tak bych zvážil použitı́ termı́nu adresář namı́sto obecného označenı́ složka. • Debian nenı́ UNIX! IP“ je zkratka. mysql“ na MySQL apod. ” ” 8 Uživatelská přı́ručka Uživatelská přı́ručka nebyla dodána, nicméně ovládánı́ systému je dostatečně intuitivnı́, takže by byla veskrze zbytečná. 2 9 Implementace • Ve vision dokumentu se mluvı́ o jakési lokalizaci produktů, jak je promı́tnuta do implementace? • Kód obsahuje různorodé programátorské styly. • Málo dokumentace u kódu. • Oddělenı́ logiky od pohledu by mělo být ještě důslednějšı́. Slovenština je natvrdo zakódována. • Nedostatečná kontrola uživatelského vstupu. Přı́klad takové kontroly: if($rok_od < 2010 || $rok_od > $rok_do){ $error[] = "Zadali ste nesprávny rok"; } if($mesiac_do > 12 || $mesiac_od > 12){ $error[] = "Zadali ste nesprávny mesiac"; } if($den_do > 31 || $den_od > 31){ $error[] = "Zadali ste nesprávny den"; } • Stejně jako je vytvořena třı́da na práci s databázı́, tak by bylo dobré napsat i třı́du na práci s výsledkem databázové operace. • Zbytečné použitı́ uvozovek namı́sto apostrofů v mnoha mı́stech. 10 Testy • Zvážil bych odstraněnı́ DBTest, protože se jedná spı́še o test použité databáze než nějaké práce s nı́. • Nezapomeňte použı́t třı́du TextHelper v konečné implementaci, protože jinak je jejı́ kód i test zbytečný. . . • Málo pročištěný kód. Př.: Metoda testDatabaseInitialization() nenı́ dostupná. function setUp(){ ... $this->db = DB::getInstance(); $this->db->delete( "‘Plane‘" ); ... } function testDatabaseInitialization(){ $this->assertNotNull( $this->db ); } 3 11 Závěr Projekt hodnotı́m průměrně, i když obsahuje až moc dětských nemocı́“. ” Implementace pokrývá přibližně polovinu z dokumentace, a tak již majı́ autoři našlápnuto k úspěšnému dokončenı́ své práce. Za největšı́ chybu pak považuji nehašovánı́ a nesolenı́ hesel. 4
Podobné dokumenty
Základní typografická pravidla
Smı́šená sazba
je sazba složená z různých řezů, druhů a stupňů pı́sma
3 OpenOffice.org 101 3.1 Kancelárský balık OpenOffice.org
Pomlčka je vytvářena ze spojovnı́ku automaticky, nastavuje se v Automatických opravách na kartě Volby, položka Nahradit pomlčky. Dlouhou pomlčku můžeme
vyrobit napsánı́m dvou spojovnı́k...
Ilja Iljič je jen trochu naším současníkem
v Městském divadle v Brně režírovala právě Hana Burešová, věkem přesně odpovídá tomu, co
„předepsal“ Gončarov – Isteník
je ročník 1983, jen ta jeho postava má více rysy pyknika než rysy
střední. Pr...
Název práce - ShareLaTeX
Mezi nejvı́ce citované statistické články patřı́ práce Kaplana a Meiera a Coxe
(Kaplan a Meier, 1958; Cox, 1972). Student (1908) napsal článek o t-testu.
Prof. Anděl je autorem učebnice m...