Jak se používají dnešní webové aplikace? Mnozí uživatelé asi odpoví, že se do aplikace nejprve registrují, přihlásí se a pak v aplikaci naleznou příslušnou stránku, na které vyplní formulář a odešlou ho na webový server. Tuto činnost provádějí tak dlouho, dokud neukojí svých potřeb. Samozřejmě, každý vývojář se s podobnou výpovědí setkal a zná ji ze své praxe. Představí si ji asi tak, že aplikace bude disponovat
- registračním formulářem na stránce s registrací,
- přihlašovacím formulářem na hlavní stránce,
- a stránkami s jinými formuláři na jiných stránkách.
Taková představa je ovšem trochu urychlená, protože se váže na implementační detaily a především na návrh uživatelského rozhraní. V takovém znění by měla zajímat spíše koncového uživatele. V základních fázích vývoje webové aplikace nás vývojáře nebude zajímat rozvržení jednotlivých stránek ani jaké zvolit prvky do formulářů. Takové rozhodovaní odložíme na později. Zkusme se na to podívat z jiného úhlu a pojďme se nyní zamyslet nad vhodnou abstrakcí použití naší aplikace koncovým uživatelem.
Uživatel přistupuje k aplikaci vždy s nějakým záměrem, tzn. že chce, aby vykonala něco v jeho zájmu. Interakci uživatele s webovou aplikací za určitým cílem budeme označovat jako případ užití (anglicky use case). Případy užití můžou být podmíněny rolí uživatele (např. jen administrátor může měnit zásadní nastavení) nebo jinou výchozí podmínkou (např. zákazník musí mít v košíku nějaké zboží, aby mohl potvrdit objednávku) a často jsou variabilní (např. aby mohl uživatel změnit počet konkrétního zboží v košíku, musí být zboží dostupné na skladě). Důležitým faktem je, že webová aplikace disponuje konečným počtem případů užití.
„Referenční příručka jazyka UML definuje případ užití jako specifikaci posloupností činností, včetně proměnných posloupností a chybových posloupností, které systém, podsystém nebo třída může vykonat prostřednictvím interakce s vnějšími aktéry.“ [USDP, strana 95]
Metodika Unified Software Development Process zaznamenává případy užití pomocí diagramů případu užití notačního jazyka UML. Ačkoli jazyk UML nepředepisuje konkrétní způsob textové specifikace, je ustálen zápis pomocí šablony [USDP, strana 99]. Na úrovni lidské řeči (pseudokódu, chcete-li) jsou zaznamenány veškeré možné použití aplikace koncovým uživatelem. Ptáte se k čemu to je dobré? Stačí prý naházet do šablon několik formulářů, provázat je controllery a nějak to napojit na databázi? Ten pravý důvod na nás stále čeká!
Webovou aplikaci lze zjednodušeně definovat jako model a uživatelské rozhraní postavené nad modelem, které koncovému uživateli umožňuje s modelem komunikovat a manipulovat a tím realizovat případy užití. Velmi často je ve webových aplikacích externí uživatel v rámci modelu reprezentován a jako interní entita komunikuje se zbylou částí modelu.
Návrh případů užití spočívá v transformaci modelu na úrovni lidské řeči (požadavků na webovou aplikaci) do modelu na úrovni komunikace objektů našeho modelu z MVC. V UML lze tuto komunikaci zachytit pomocí sekvenčních diagramů (je možné využít i další diagramy). Tím docílíme popsání úplné funkčnosti modelu.
V rámci otázky implementace nás bude držet při zemi databáze jakožto úložiště dat. Naštěstí je možné postavit model na nějakém ORM a částečně se s nástrahami vypořádat. Teď, když už máme čistě objektový perzistentní funkční základ webové aplikace, který je schopný obstarat všechny případy užití externích uživatelů, je teprve čas na natlačení uživatelského rozhraní do controllerů, šablon a formulářů!
[USDP]Jim Arlow, Ila Neustat: UML 2 a unifikovaný proces vývoje aplikací, Computer Press, 2007
17.07.2009 23:16
