Hledáte marně nějaký nástroj pro analýzu a návrh vašich internetových projektů? Přijde vám UML k tomuto účelu příliš robustní a složité, ale zároveň v některých ohledech nedostačující? Pojďme se společně podívat, co nám softwarové inženýrství nabízí v oblasti vývoje webových aplikací. Následující série článků by vás měla seznámit se základní filosofií a strukturou metodologie WebML.

Potřebujeme analýzu a návrh?

Webové aplikace se v posledních několika letech stávají stále komplexnějšími a složitějšími softwarovými produkty. Do prostředí webu se přenášejí kompletní firemní informační systémy. Můžeme se setkat s rozsáhlými projekty v oblasti elektronického obchodování nebo elektronického bankovnictví. Správná analýza a návrh těchto systémů a jejich následný bezproblémový chod je pro jejich provozovatele, a někdy i pro jejich zákazníky, přímo životně důležitý.

Význam softwarového inženýrství při tvorbě software si již málokdo dovolí zpochybnit. Sice existují i přístupy, které analýzu a návrh software úplně ignorují, ale ty lze použít pouze za specifických podmínek. Obvykle se vyznačují implementací v mnoha krátkých iteracích a intenzivním testováním. Mám na mysli především extrémní programování (viz též zdrojová stránka XP). Opustíme ale téma extrémního programování a zkusíme se porozhlédnout, co nabízí softwarové inženýrství nám, tvůrcům webových aplikací.

Nedostatky klasických metodologií

Kvalitních metodologií, určených pro tvorbu software, můžeme nalézt poměrně velké množství. Ať jsou to strukturované metodologie, kde kdysi dominovalo například SA/SD, nebo objektové metodologie, kde kralovalo dlouhou dobu OMT. Dnes je fenoménem oblasti analýzy a návrhu softwaru jazyk UML.

Jsou ovšem tyto klasické nástroje vhodné pro vývoj webových aplikací? Do určité fáze projektu bezpochyby ano. Datové modelování, ať už je prováděno pomocí Class diagramů (UML, OMT) nebo entitně relačních diagramů (SA/SD), je v klasických metodologiích velice slušně propracováno. Rovněž funkční modelování (diagram datových toků – DFD) a dynamické modelování (stavové diagramy, diagramy aktivit) jsou v UML nebo OMT na vysoké úrovni.

V určité fázi analýzy ovšem zjistíme, že nám něco znatelně chybí. Úspěch webových aplikací je totiž do značné míry postaven na funkčnosti a ergonomii uživatelského rozhraní. Většina klasických metodologií se ale téměř vůbec nezabývá jeho návrhem. Základem webu je hypertext a s ním souvisí další důležitý pojem a tím je navigace. Již počátkem devadesátých let někteří autoři poukazovali na to, že tradiční metodologie tvorby software neposkytují dostatečné abstrakce pro specifikaci aplikací, které využívají hypertextové paradigma. Neposkytují žádné notace pro návrh navigace v aplikaci a nezabývají se tím, jak navigaci implementovat. Můžeme ovšem tuto část projektu nechat nevyřešenou a skončit analýzu návrhem datové struktury, několika náčrty struktury webu a grafického návrhu webdesignera, který často pracuje externě a nezná pozadí vytvářené aplikace? Domnívám se (a nejenom já), že u větších projektů toto není možné.

Koncem minulého století proto vznikly první pokusy o vytvoření metodologií určených výhradně pro webové vývojáře. Jednou z nejznámějších byla a stále je metodologie OOHDM (Object-Oriented Hypermedia Design Method) brazilských autorů Daniela Schwabeho a Gustava Rossiho z university v Riu. Někteří vývojáři tuto metodu nadšeni přijali, u jiných byla reakce chladnější. Přesto patří mezi to nejlepší, co máme k dispozici.

Často se můžeme setkat s nejrůznějšími rozšířeními jednotlivých metodologií o podporu modelování specifik webových aplikací. K nejznámějším patří rozšíření UML Web Application Extension, poprvé publikované v roce 2000 (viz Modeling Web Application Architectures with UML). Musím se ovšem přiznat, že mne toto rozšíření moc neoslovilo. Nejsem totiž příznivcem pokusů vytvořit z UML universální modelovací nástroj určený pro všechny oblasti tvorby software. Dle mého názoru pak UML zbytečně bobtná a stává se příliš složitým a neohrabaným nástrojem. Proto bych se rád zaměřil na metodologie vytvořené čistě pro účely webových vývojářů.

Řešením může být WebML

V tomto článku bych vás chtěl seznámit s poměrně mladou metodologii, která je určena výhradně pro návrh webových aplikací – WebML (Web Modeling Language). WebML není jen jazykem (sadou formálních grafických specifikací) jako UML, ale definuje i kompletní proces návrhu internetových aplikací a podporuje celý životní cyklus produktu. Její původ můžeme hledat na italské univerzitě Politecnico di Milano.

Hlavní cíl návrhu WebML představuje možnost oddělit při modelování informační obsah stránek (datový model) od jejich struktury a navigace (hypertextový model) nezávisle na konkrétním designu uživatelského rozhraní (prezentační model). WebML umožňuje specifikovat i dynamickou stránku webové prezentace (nejrůznější operace a manipulace s daty), které jsou vyvolávány jako vedlejší efekt navigace. Pod tím si můžeme představit například vkládání zboží do nákupního košíku nebo přidání příspěvku do diskusního fóra pod tímto článkem.

Jako každá metodologie je i WebML složena z několika modelů a pravidel, které definují, jak jsou tyto modely mezi sebou provázány. Celek by měl být komplexním modelem webové aplikace, který umožňuje z metadat uložených v repository příslušného CASE nástroje přímo generovat základní kostru výsledného produktu. Nemusíme tedy zůstat jen u sady diagramů, ale na analýzu a návrh může dynamicky navazovat také implementace (stejně tak jako je tomu v UML při použití příslušného CASE nástroje). Tato představa už je dle mého názoru poměrně atraktivní a lákavá.

Základní modely WebML

V tomto odstavci budou shrnuty a stručně vymezeny jednotlivé modely, ze kterých se WebML skládá. Obrázek pak ukazuje, jak jsou modely mezi sebou provázány.

  • Datový model slouží pro návrh datové struktury, která reprezentuje informace zpracovávané a prezentované v internetové aplikaci. Je velice podobný klasickému entitně relačnímu modelování (ER diagram). Jedná se o konceptuální model, který se velice jednoduše převádí například do konkrétní relační databáze (Oracle, MSSQL, PostgreSQL a další).
  • Hypertextový model je tvořen dvěma submodely, které jsou spolu těsně spjaty. Prvním je kompozice webové aplikace, kde je definováno složení prezentace z jednotlivých stránek a složení stránek z jednotlivých předdefinovaných elementů (units). Ty představují atomické součásti obsahu stránky a jsou vázány na entity datového modelu, ze kterých čerpají svůj obsah nebo chování. Druhou částí hypertextového modelu je navigace, která zobrazuje, jak jsou mezi sebou jednotlivé stránky respektive jejich elementy provázány. Obecně se dá říci, že tento model definuje strukturu a funkčnost webové aplikace na konceptuální úrovni. Tedy na úrovni, kdy je výsledný produkt ještě nezávislý na implementačních detailech a není známý výsledný vzhled aplikace.
  • Prezentační model je chápán jako transformace předchozích modelů do konkrétní podoby webové prezentace. Celý model WebML je totiž možné prezentovat jako XML dokument (DTD pro WebML je volně ke stažení). Vstupem transformace modelu jsou jednotlivé specifikace z hypertextového a datového modelu ve formátu XML. Výstup je generován pomocí XSL transformace a jsou jím šablony jednotlivých stránek včetně potřebného kódu značkovacího jazyka a aplikační logiky, používající některý z jazyků respektive technologií pro programování webových aplikací – nejčastěji ASP.NET nebo JSP. Při této transformaci je možno použít nejrůznější předdefinované styly a serverové komponenty nejčastěji zajišťující přístup k datům (např. trojice SqlConnection, SqlDataAdapter a DataSet z prostředí ASP.NET).

modely WebML
Modely WebML

Podpora WebML v CASE nástrojích

Pokud bychom chtěli využít všech možností WebML, máme k dispozici speciální CASE nástroj WebRatio Site Development Studio, který plně podporuje i generování kódu z navržených modelů. K dispozici jsou zdarma také šablony do populárního nástroje MS Visio. Implementace WebML do jiných CASE nástrojů na sebe nedá pravděpodobně dlouho čekat. O WebML se totiž velice intenzivně zajímá například firma BEA (tvůrce platformy BEA Weblogic).

Závěr

Vysvětlení jednotlivých modelů přesahuje možnosti jednoho článku, a proto se jim budu podrobněji věnovat příště. To bych se již rád posunul z oblasti teoretických úvah do reálného světa a rád bych ukázal, jaké výhody nám může použití WebML přinést v praxi. Kdo by chtěl už nyní poznat nějaké praktické použití této metodologie, může se podívat na stránky společnosti Acer.

Další zdroje

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Žádný příspěvek v diskuzi

Odpovědět