IS pro podporu BOZP na FIT ČVUT Závěrečná zpráva pro 2. iteraci 21. dubna 2011 Zadavatel: Ing. Jiří Chludil Řešitelský tým: Jiří Kopecký Jan Kratochvíl Milan Matějček Štefan Pinďák Kristýna Streitová
Úvod V první iteraci již byly zjištěny veškeré požadavky od klienta, byly utříděny a analyzovány. Dále byly vytvořeny use case modely, analytický doménový model tříd a v neposlední řadě také celková definice cíle a rozsahu projektu. V druhé iteraci se na tyto poznatky navazuje a díky nim mohla být zvolena architektura systému, způsob uložení dat, programovací jazyk a framework. Byl samozřejmě také vytvořen databázový model, model tříd či modely komunikace. Architektura Jako architektonický vzor byl zvolen Model-view-presenter (MVP), což je vzor velmi podobný známějšímu Model-view-controller (MVC). MVP rozděluje aplikaci do tří minimálně závislých komponent: datový model, uživatelské rozhraní a řídicí logika. Model - definuje data, která mají být zobrazena View - šablony, prezentace, HTML Presenter - aplikační logika 2
Návrh architektury: Framework Daná architektura byla vybrána kvůli zvolenému frameworku Nette, což je velmi rychlý a výkonný framework využívající PHP 5, který poskytuje mnoho výhod: dokonalé zabezpečení implementované na úrovni frameworku čistý, objektový návrh aplikace budoucí rozšiřitelnost a znovupoužitelnost kódu kvalitní ladící nástroje podpora práce v týmu neustálý vývoj Framework byl vybrán zejména kvůli možnosti rozšiřitelnosti, neboť se v budoucnu počítá s postupným vývojem všech definovaných modulů, a také kvalitní zabezpečení, které je ve fakultní aplikaci naprosto nezbytné. Při výběru hrála roli také jeho vysoká rychlost (v porovnání s ostatními frameworky jako Zend či Fuse), živá a kvalitní komunita, kvalitní dokumentace a v neposlední řadě také fakt, že se jedná o český výrobek distribuovaný zcela zdarma. 3
Velice úzké propojení Nette Frameworku a MVP popisuje následující obrázek: 4
Způsob uložení dat Jako způsob uložení dat byla na žádost zadavatele zvolena relační databáze PostgreSQL, která plně pokrývá všechny potřeby tohoto projektu. Jedná se o plnohodnotný databázový systém s otevřeným zdrojovým kódem, který má za sebou již 15 let aktivního vývoje a vynikající pověst pro svou spolehlivost a bezpečnost. Ve výkonu v porovnání se srovnatelnými komerčními systémy rozhodně nezaostává a mnohdy je i předčí. Následující obrázek zobrazuje databázový model aplikace. Jak je vidět, klíčové jsou zejména tabulky Přístroj a Zaměstnanec. Návrhový model tříd Návrhový model tříd (Příloha č.1) poskytuje statický pohled na návrhové třídy v systému, zachycuje atributy, metody, jejich datové typy a také asociace mezi nimi. Vše podrobně popisuje následující návrhový model tříd aplikace. 5
Model komunikace Model komunikace detailně popisuje realizaci scénářů, zachycuje komunikaci (zasílání zpráv) mezi objekty a přiřazení zodpovědnosti třídám. Následující diagramy komunikace zobrazují klíčové případy užití. Je nutné podotknout, že z důvodu přehlednosti a informativní hodnoty do nich není zanesena kompletní funkčnost frameworku Nette. Diagram komunikace - Přihlášení 6
Diagram komunikace - Přidání přístroje 7
Diagram komunikace - Editace přístroje 8
Diagram komunikace - Vymazání přístroje Strom aplikace Následující obrázek popisuje části databáze přístrojů a funkce, které jsou v těchto jednotlivých částech pro uživatele dostupné. Tyto funkce jsou podrobně popsány v Analýze požadavků. 9
Dokončené úkoly Z hlediska projektu: doplnění analýzy zvolení architektury a frameworku (MVP, Nette Framework) zvolení programovacího jazyka (PHP5.3) vytvoření návrhu architektury, návrhového modelu tříd, modelu komunikace a databázového modelu vytvoření stromu aplikace a životního cyklu aplikace prvotní pohled na uživatelské rozhraní zahájení implementace Z hlediska týmu: vytvoření časového plánu jednotlivých fází vytvoření zázemí pro vývoj aplikace týdenní týmové schůzky pravidelná tvorba interních reportů a zápisů ze schůzek Podpůrné úkoly pro aplikaci: vyžádání přístupu na web server Mantichora a vytvoření web serveru (PHP5, Apache2) vyžádaní přístupu do databáze a webservise zprovoznění modulu mod_rewrite pro Apache povolení pro PHP rozšíření: gd (práce s grafikou na čárové kódy), pg_sql a pdo_pg_sql (připojení na PostgreSQL), memcache nasměrování SVN na Mantichoru a zajištění automatické aktualizace zakázání přístupu do složek.svn na úrovni Apache Aplikace: připravena adresářová struktura z Nette Framework příprava na moduly příprava na jazyky + překladač příprava na jednoduché nahrávání CSS a Javascriptu a jejich následné spojování (rychlejší přenos po síti) vytvořen BaseModel (rozhraní pro práci s databází), BasePresenter (rozhraní pro běh aplikace a práci s daty) připraven autoloading helperů pro Nette Framework pro každého člena týmu vytvořeno vývojové prostředí na úrovni aplikace implementace pomocníka pro vytvoření presenteru a template na základě requestu 10
Budoucí vývoj projektu vytvoření grafického návrhu vývoj uživatelského rozhraní intenzivní implementace dokumentace projektu prvotní testování příprava na zakončení projektu 11
Kontakty: Členové týmu: Jiří Kopecký e-mail: kopecji2@fit.cvut.cz Jan Kratochvíl e-mail: colonel32@seznam.cz Milan Matějček e-mail: milan.matejcek@gmail.com Štefan Pinďák e-mail: stefan.pindak@centrum.cz Kristýna Streitová e-mail: streikri@fit.cvut.cz 12