UML grafický jazyk se pro vizualizaci, specifikaci, navrhování a dokumentaci programových systémů zjednodušuje komunikaci mezi zadavatelem a řešitelem projektu UML podporuje objektově orientovaný přístup dá se využít i pro bussiness modelování a modelování nesoftwarových systémů 3 druhy UML diagramů 1) Strukturální Diagramy(Structure Diagrams) - diagram tříd - diagram objektů - diagram komponent - diagram balíků - diagram kompozitní struktury - diagram nasazení 2) Diagramy Chování(Behavorial Diagrams) - diagram užití - diagram stavů - diagram aktivit 3) Diagramy Interakce(Interaction Diagrams) - sekvenční diagram - diagram komunikace - diagram časování - diagram spolupráce
Diagram Tříd staticky popisuje jednotlivé třídy nebo rozhraní systému a vztahy mezi nimi oproti diagramu objektů nepopisuje konkrétní objekty Pro každou vlastnost nebo metodu se určuje specifikátor přístupu. Ten se zapisuje před jméno vlastnosti nebo metody(public +, protected #, private -) Vztahy U každého vztahu se popisuje násobnost vztahu. 0..1 Nula nebo žádný 1 Jeden 0..* Nula nebo více 1..* Jeden nebo více Obecný vztah(asociace) Agregace jedna z forem asociace. Používá se k vyjádření vztahu celek část. Agregovaný element může existovat ikdyž element, ke kterému patřil zaniknul. Tzn. může ho přežít a stát se součástí jiného elementu. Kompozice silnější vazba než agregace. Pokud element zanikne, zanikají i všechny elementy, které obsahoval. Dědičnost Závislost jeden element je závislý na druhém. Změny v jednom ovlivní druhý
Realizace interface Příklad diagramu tříd
Diagram užití používá se k popisu systému z hlediska uživatele zachycuje typy uživatelů, kteří se systémem pracují a typy operací, které vykonávají základní prvky diagramu užití jsou aktér(nějaký uživatel systému) a případ užití(operace prováděná aktérem) aktér nemusí být nutně člověk, může to být i jiný systém mezi případy užití můžou být použity 3 druhy vztahů include při opakování stejného případu užití na více místech extend rozšíření už existujícího případu užití generalizace dědičnost Diagram Stavů popis stavů objektu a přechodů mezi těmito stavy každý stav může mít přiřazenou vstupní(entry/), výstupní(exit/) a interní(do/, akce/ ) akci podmíněné přechody mezi stavy se zapisují jako [podmínka]/akce
Diagram Objektů vypadá podobně jako diagram tříd, ale zobrazuje konkrétní instance tříd(objekty) a vztahy mezi nimi objekty se popisují jako jmeno_objektu : trida u objektů se můžou uvést jejich konkrétní vlastnosti Sekvenční diagram zobrazuje časovou posloupnost na svislé ose je čas, na vodorovné objekty každý objekt má svou čáru života(- - - - -), ta ukazuje kdy objekt žije a kdy zaniká každý objekt může být po určitou dobu aktivní, aktivita objektu se zobrazuje jako v sekvenčním diagramu jsou popsány zprávy, které si jednotlivé objekty posílají(např. Hlad()) jména objektů se zapisují stejně jako v diagramu objektů(objekt:trida) časová osa nemá měřítko, takže podle délky obdélníku se nedá posuzovat, jak dlouho bude objekt aktivní pro vytvoření objektu se používá zápis <<create>>(u zprávy) a <<new>>(u objektu). Zničení objektu se zapisuje jako <<destroy>>
Diagram spolupráce je zaměnitelný s sekvenčním diagramem(jdou snadno převést jeden na druhý) oproti sekvenčnímu diagramu je méně vhodný když chceme vyjádřit časové souvilosti, ale je vhodnější na strukturální zobrazení kdo s kým spolupracuje iterace(cykly) se zapisují jako * před podmínkou Přepis sekvenčního diagramu na diagram spolupráce Diagram komponent znázorňuje softwarové komponenty použité v systému a závislosti mezi nimi můžou být jak vlastní komponenty, tak komponenty třetích stran realizace rozhraní se v diagramu komponent zapisuje buď stejně jako v diagramu tříd, nebo zjednodušeně jako