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 <
>(u zprávy) a <>(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