Unifikovaný modelovací jazyk UML

Během vývoje metodik softwarového inženýrství bylo navrženo mnoho různých víceméně formálních jazyků a prezenta...


Během vývoje metodik softwarového inženýrství bylo navrženo mnoho různých
víceméně formálních jazyků a prezentačních technik, které slouží pro popis
softwarového produktu od konceptuálního modelu až po jeho implementaci.
Různorodost zápisů přináší radost těm, kteří se neradi váží na určitý jazyk či
grafickou techniku, méně radosti však činí těm, kteří musejí takové zápisy
studovat a zpracovávat. Nové generace metodik softwarového inženýrství se proto
snaží sjednotit užitečné vlastnosti různých metodik a integrovat je do nějaké
společné sady. Jedním z nejpropracovanějších přístupů je tzv. unifikovaný
modelovací jazyk UML (Unified Modeling Language) jakési "esperanto" moderního
softwarového inženýrství.
UML je zamýšlen jako univerzální standard pro záznam, konstrukci, vizualizaci a
dokumentaci artefaktů systémů s převážně softwarovou charakteristikou. Definice
UML má 4 části:
- definici notace UML (syntaxe)
- metamodel UML (sémantika)
- jazyk OCL (Object Constraint Language) pro popis dalších vlastností modelu
- specifikaci převodu do výměnných formátů (CORBA IDL, XML DTD)

Notace UML
Při analýze požadavků se často využívá modelování jako nástroje pro komunikaci
mezi zadavatelem a řešitelem. Vznikají různé modely navrhovaného systému, které
mohou být testovány, ověřovány a upravovány. Po dosažení shody mezi analytikem
a zadavatelem pak může být model dekomponován a převeden do cílového
implementačního jazyka. Používané modely mohou být různých typů. Obecně lze
model definovat jako souhrn informací o softwarovém systému, které jsou určitým
způsobem strukturovány. Diagram je graficky znázorněným pohledem na model.
Obsahuje grafické symboly a popisuje část modelu. Na rozdíl od modelu jeden
diagram málokdy popisuje celý systém většinou je k popisu systému použito více
pohledů, z nichž každý se zaměřuje na jeden aspekt modelu.
Analytické modely se zabývají zejména otázkou, co by měl systém dělat. Návrhové
modely popisují dekompozici systému na programátorsky zvládnutelné části
zabývají se přitom otázkou, jak by to mělo být uděláno. Implementační modely
dokumentují implementaci.
UML se snaží shrnout nejlepší známé pohledy a definuje osm základních druhů
diagramů. Statickou strukturu systému vyjadřují diagramy tříd, diagramy
spolupráce, diagramy komponent a diagram nasazení. Funkční stránka je popsána
modelem jednání, scénáři událostí, diagramy spolupráce a diagramy aktivit.
Dynamickou stránku dokumentují scénáře událostí, diagramy spolupráce, stavové
diagramy a diagramy aktivit.
UML sice nebrání vytváření dalších možných pohledů a diagramů, takový postup je
však proti duchu unifikace. Smyslem unifikace naopak je, aby stejné pohledy na
model systému bylo možno vyjádřit obecně srozumitelně. Notace UML definuje, jak
se zapisují základní pohledy na modelovaný systém.

Sémantika a OCL
Zápisy v UML (pohledy, diagramy) sestavené podle pravidel syntaxe musejí mít
pevně definovaný význam. Touto problematikou se zabývá popis sémantiky UML. Je
rozčleněn do 4 vrstev, které na různé úrovni abstrakce popisují vlastnosti
diagramů UML včetně možných rozšíření. Na nejnižší úrovni jsou specifikovány
vlastnosti primitivních údajů (dat) typy dat, obory hodnot atributů. O úroveň
výše je vyjádřena sématika uživatelských objektů (tzv. model, nebo též
metadata) např. co to je záznam o objektu typu "zaměstnanec". Ještě výše stojí
popis prvků modelu (metamodel) např. co to je třída, atribut, vztah, atd.
Nejvýše je pak definice vlastností metamodelu (metametamodel), např. jak lze
korektně vytvářet nové prvky modelu.
Ne všechny vlastnosti modelu lze vyjádřit pomocí diagramů. Uvažme např. datový
model systému, který se zabývá evidencí zaměstnanců. O každém zaměstnanci si
potřebujeme pamatovat různé atributy, mimo jiné např. jeho plat. Rovněž si
potřebujeme pamatovat hierarchickou strukturu mezi zaměstnanci. Pomocí diagramů
vyjádříme snadno požadavky na strukturu dat, těžko zde však zachytíme požadavky
jako "nadřízený musí mít vyšší plat než jeho podřízení". UML nabízí (ale
nevnucuje) možnost použít pro vyjádření takových omezení specifikační jazyk OCL
(Object Constraint Language). Ten poslouží právě pro formulování
komplikovanějších integritních omezení, pro popis vlastností operací a může být
koneckonců použit i pro vyjádření sémantiky UML. Součástí definice UML je i
specifikace výměnných formátů, sloužících např. pro přenos zápisů v UML mezi
různými nástroji. Jako příklad lze uvést formát CORBA IDL (Interface Definition
Language) či XMI (XML Metadata Interchange).

Cesta ke společnému standardu
Metodiky softwarového inženýrství představují soubor prezentačních technik
výrazových prostředků a metodických postupů, které podporují systematický vývoj
a údržbu programového díla včetně plánování a řízení prací na programovém
projektu. Jednotlivé metodiky se tedy mohou lišit prezentačními technikami
(notací), metodickými postupy (procesy) a dostupnými nástroji. Ačkoli s sebou
každá metodika přinesla něco nového a obvykle též novou notaci rozmanité
inovace jen výjimečně znamenaly i novou kvalitu. To bylo důvodem snahy o
unifikaci vyjádření. Vznikají proto metodiky, které se snaží sjednotit výhodné
vlastnosti různých notací a metodických postupů. Patří mezi ně např. metodika
Fusion (Coleman, 1994), či Unified Method (Rumbaugh/Booch, 1995), která vznikla
integrací metodiky OMT (Object Modeling Technique Rumbaugh) a OOD
(Object-Oriented Design Booch). Dvojice Rumbaugh a Booch posléze založila firmu
Rational, ktará si vývoj unifikované metodiky vytkla jako hlavní cíl své
činnosti. Později se k nim připojil i Jacobson se svou metodikou OOSE
(Object-Oriented Software Engineering) a společně vypracovali prvý návrh UML
(1996). V roce 1997 převzalo tento návrh sdružení OMG (Object Management Group)
a pod označením UML 1.1 jej začalo doporučovat jako standard (1997). Od
poloviny roku 2001 se pracuje na verzi standardu UML 2.0.
Aktuální vývoj v oblasti modelování bude patřit k hlavním tématům národní
databázové konference Datakon (19.-22. 10. 2002, Hotel Santon, Brno), která
nabízí o této problematice tutoriál UML teorie a praxe (Karel Richta). To
samozřejmě není vše. Na své si přijdou i zájemci o objektově-relační databáze
(Jaroslav Pokorný). O využití webových zdrojů se připravuje tutoriál Ontologie
a web (Vojtěch Svátek). Do aplikované futurologie míří tutoriál Kvantové
počítání (Jozef Gruska). Computerworld je mediálním partnerem této konference.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.