Charakterizujte UML, jeho historický vývoj i současný stav. Charakterizujte základní diagramy UML a jejich využití. Jaké jsou možnosti rozvoje UML? Co je to MOF? Jaké jsou přednosti a nedostatky UML? Jaká je podpora UML v CASE nástrojích a metodikách?
Předpoklady: Jste vedoucím projektu vývoje IS objektově-orientovaným způsobem.
Zadání:
MOF - jakýsi standardizovaný jazyk pro tvorbu metamodelů. Je v něm vytvořen i metamodel UML.
Jazyk označovaný zkratkou UML neboli Unified Modeling Language je, jak již název napovídá, unifikovaný modelovací jazyk, který má, na rozdíl od převážně textově orientovaných programovacích jazyků, vlastní grafickou syntaxi (tj. pravidla pro sestavování jednotlivých elementů jazyka do větších objektů) a sémantiku (tj. jednoznačná pravidla určující jednotlivým syntaktickým výrazům jejich význam).
V současné době má jazyk UML největší význam při návrhu softwarových systémů, protože objektově orientovaný návrh každé složitější aplikace je nezbytným předpokladem pro její úspěšnou a rychlou implementaci. Pro objektově orientovaný návrh je samozřejmě možné použít různé podpůrné prostředky, zejména další odlišné typy diagramů, UML je však významné také v tom ohledu, že přesně specifikuje, co má daný diagram obsahovat, což je velmi důležité zejména při sdílení informací mezi jednotlivými analytiky a vývojáři. Dále je již z principu UML nutné, aby vytvářené grafy měly vnitřní konzistenci a přesně danou sémantiku, což u jiných typů grafů nemusí být obecně zaručeno. UML diagramů existuje několik typů lišících podle toho, jaké se pomocí nich plánují či zpracovávají úlohy. Tyto diagramy se od sebe odlišují především repertoárem použitých značek, způsobem jejich vzájemného propojení a s nimi související sémantikou.
Mezi velké přednosti jazyka UML i na něm postavených UML diagramů patří existence otevřeného a rozšiřitelného standardu, podpora celého vývojového cyklu aplikace či jiného (ne nutně programového) systému a velká podpora pro různé aplikační oblasti. Pro širší využití jazyka UML v praxi mluví také významný fakt, že je podporován celou řadou vývojových nástrojů, ať už samostatných aplikací určených pouze pro práci s UML, nebo i integrovaných vývojových prostředí (IDE), které v některých případech dovolují provádět převod informací mezi UML diagramem a algoritmem zapsaným v programovacím jazyce (a samozřejmě i opačným směrem, ten je však z pochopitelných důvodů složitější a ne vždy uskutečnitelný).
Podrobnější popis jazyka UML je uveden například na stránce http://www.interval.cz/clanek.asp?article=2783
Celý jazyk UML je založený na třech elementech, které ale nejsou z uživatelského hlediska reprezentovány v textové podobě, ale grafickými značkami v plošném (tj. dvourozměrném) grafu. Tyto tři základní elementy jazyka UML se dle své funkce nazývají:
V dalších kapitolách bude význam jednotlivých elementů grafického jazyka UML popsán podrobněji. Ve třetí kapitole si popíšeme význam předmětů, v kapitole čtvrté význam relací a konečně v kapitole páté význam celých diagramů jako objektů na nejvyšší hierarchii UML.
Předměty jsou elementy zpracovávaného modelu, jež jsou následně členěny do několika navzájem rozdílných podkategorií. Prvním typem podkategorií jsou takzvané strukturní abstrakce UML modelu, například programové třídy, aplikační či objektové rozhraní, případy užití, komponenty či uzly. V diagramu UML jsou strukturní abstrakce zobrazeny jako různé převážně plošné tvary, které jsou však vždy uzavřené. Například se jedná o obdélníky, elipsy, kružnice či jednoduché zdánlivě trojrozměrné tvary, například krychle či kvádry. Každý smysluplný UML diagram by měl obsahovat alespoň dvě strukturní abstrakce, při jedné abstrakci totiž modelování ztrácí svůj hlavní smysl - popis vztahů mezi jednotlivými objekty.
Kromě strukturních abstrakcí patří mezi předměty i takzvaná chování, která v UML diagramu prezentují interakce, tj. vzájemné komunikace mezi jednotlivými objekty. Pomocí chování lze také modelovat stavový stroj, u nějž se stavy specifikují pomocí přechodů, událostí a aktivit. Chování se v UML diagramu většinou vyznačuje pomocí různým způsobem konstruovaných a různě zakončených šipek či propojovacích čar.
Mezi předměty patří i takzvané seskupení, které podle potřeby modelu graficky seskupuje části diagramu na nižší úrovni. Většinou se jedná o takzvané balíčky, jež mají tvar stylizované kancelářské složky s popisem umístěným v levé horní části obdélníku (zobrazení seskupení se však může v různých prostředích odlišovat). Seskupení nejsou v současné době v některých dále popisovaných aplikacích použitelná (tj. nelze vytvářet hierarchické diagramy), což je pro tvorbu rozsáhlejších grafů velké omezení.
Posledním a současně velmi jednoduchým typem předmětů jsou poznámky, které blíže specifikují vlastnosti a chování dalších elementů UML diagramu. Graficky jsou poznámky na prakticky všech typech UML diagramů většinou vyvedeny žlutě vyplněným obdélníkem s ohnutým rožkem.
Vzhledem k tomu, že v grafech je zapotřebí předměty různým způsobem navzájem propojovat, jsou v jazyku UML specifikovány i relace, tj. vztahy mezi různými předměty. V UML jsou rozeznávány následující podtypy relací (z čistě jazykového hlediska patří relace mezi základní elementy UML):
Diagramy zachycují různé aspekty modelovaného systému, který nemusí být obecně vyjádřen pouze jedním UML diagramem, protože je možné například pomocí balíčků (packages) sdružovat více diagramů do jednoho hierarchicky organizovaného celku. Každý z níže vyjmenovaných typů diagramů obsahuje poněkud odlišný repertoár dostupných grafických značek (předmětů a relací). Liší se i v tom, že některé jsou statické, jiné zachycují dynamiku, jsou spíše technologické nebo naopak reprezentují lidský pohled na systém.

TODO: popsat jednotlivé diagramy
Ujasní se tím analýza i návrh IS (rozložení komplexního problému na menší), umožní se tím spolupráce více lidí (jinak by stačilo to mít v hlavě), lepší identifikace problémů a nejasností dřív než se na to začne programovat, je to i forma dokumentace, dobré CASE nástroje z UML modelů vytvoří i kostru kódu a naopak - šetří to práci. Diagramy mohou být vhodné i pro prezentaci a ujasnění problémů s klientem.
Nejdříve srovnám, co mi CASE může nabídnout, z toho odvodím přínosy (časové, finanční, řešení problémů) a srovnám to s náklady. Záleží na ceně CASE, velikosti a komplexnosti projektu, počtu pracovníků a jejich zkušenostech s modelováním a s CASE nástroji.