Jazyk UML

Definice: UML je jednotný grafický (vizuální) jazyk pro jednotnou specifikaci, vizualizaci, konstrukci a dokumentaci při objektově orientované analýze a návrhu (OOA&D) i pro modelování organizace (business modelling).

Pozor, častá chyba, nepatří sem ER diagram!

UML operuje s pojmem pohled (view). Pohled systému je projekce systému na jeden z jeho relevantních aspektů.
Taková projekce se zaměřuje na příslušný aspekt a ignoruje ostatní.
Jak jistě vyplývá z podstaty věci, je vhodné vytvářet několik různých pohledů na tentýž systém.
Pohledy nad systémem jsou pak modelovány prostřednictvím vhodných nástrojů (modelů) poskytovaných UML.
Můžeme rozlišit tyto základní pohledy:

Strukturální pohled popisuje vrstvu mezi objekty a třídami, jejich asociace a možné komunikační kanály.

Pohled chování popisuje, jak systémové komponenty interagují, charakterizuje reakce na vnější systémové operace.

Datový pohled popisuje stavy systémových komponent (objekty) a jejich vazby.

Pohled rozhraní je zaměřeno na zapouzdření systémových částí a jejich potenciální použití okolím systému.

Nabízí několik základních diagramů:

UML v etapách vývoje softwaru

1. Specifikace požadavků

diagramy případů užití

detaily případů užití

specifikace (strukturovaný text)

slovníky pojmů

Diagramy případů užití (use case diagram)

Znázornnují hranice systému, jeho účastníky, interakci mezi nimi a akce, které mohou provádět.

detaily případů užití

Slouží pro konkretizaci jednotlivých případů užítí. Neexistuje standard zobrazeni, ale používá se tabulka, která obsahuje vstupní podmínky, výstupní podmínky a tok událostí.

2. Analýza

diagramy analytických tříd

realizace případů užití (diagramy interakce)

diagramy aktivit

analytické balíčky

objektové diagramy

Analytické třídy

mapují pojmy problémové domény na abstraktní entity modelu – třídy. Analytická třída není návrhová třída, tj. analytická třída slouží pouze pro identifikaci entit v řešené problematice a vztahů mezi nimi. Během etapy návrhu jsou analytické třídy upřesňovány do jedné či více návrhových tříd. Analytická třída

obsahuje jen nejpodstatnější atributy a operace

obsahuje minimální množinu odpovědností

obsahuje minimum vazeb na jiné (analytické) třídy

Analytické balíčky

Analytické balíčky souvisejí s dekompozicí problému – umožňují souběžnou práci na více částech (balíčcích) v etapě návrhu. Analytické balíčky seskupují sémanticky související elementy a definují hranice tohoto seskupení. Více balíčků můžeme řešit souběžně. Balíček také poskytuje zapouzdření prostoru jmen (tj. názvy elementů musí být v rámci balíčku jedinečná, mezi balíčky však může docházet k duplicitám) a definuje viditelnost zapouzdřených elementů – veřejné (public), soukromé (private) a chráněné (protected). Analytické balíčky mohou obsahovat

případy užití

analytické třídy

realizace případů užití

další balíčky

Diagramy interakce Diagramy interakce zahrnují diagramy spolupráce, které zdůrazňují strukturálí relace mezi objekty, a sekvenční diagramy které zdůrazňují časově orientovanou posloupností předávání zpráv mezi objekty. Bývají přehlednější než diagramy spolupráce, uživatelé lépe porozumí sekvenčnímu diagramu.

Diagramy aktivit

Diagramy aktivit reprezentují objektově orientované diagramy toků a lze je připojit k libovolnému modelovanému elementu (třída, balík, apod.) Diagram aktivit je zvláštním případem stavového automatu, který je určen především na modelování manažerských procesů. Diagram aktivit obsahuje počátek a konec, stavy aktivity a přechody mezi stavy.

Objektové diagramy

Objektové diagramy patří mezi diagramy dynamické. Zachycují konkrétní instance tříd a jejich vazby v určitém čase či podmínce. V některých případech je vhodné zobrazit konkrétní vazby mezi objekty, zejména pro zdůraznění význačného aspektu nebo jako pomůcku při hledání tříd v řešené problematice a vazeb mezi nimi. Vazby mezi objekty se mohou v průběhu měnit a jejich abstrakce je zachycena právě v diagramu tříd. Identifikace objektu sestává ze dvou částí – jména třídy, které je instancí (uvádí se za dvojtečku) a případného jména objektu (pokud objekt má jméno, uvádí se před dvojtečkou).

3. Návrh

upřesňování analytických diagramů (diagramy návrhových tříd, realizace případů užití)

stavové diagramy

návrhové podsystémy

Návrhové třídy

Specifikace návrhových tříd je na takovém stupni, že je lze přímo implementovat. Jedná se o upřesnění analytických tříd. Využití tříd z doménového řešení (knihovny, vrstva aplikačního serveru, GUI, . . . ).

Stavové diagramy

stavové automaty

speciálnı´ případ stavového automatu je diagram aktivit (modelování´ manažerských procesů, účastní se více objektů)

stavový diagram – modelování životního cyklu jednoho reaktivního objektu

Reaktivní objekt reaguje na vnšjší události. životní cyklus je modelován jako řada stavů, přechodů a událostí. Chování je důsledkem předchozího chování (následný stav závisí na aktuálním stavu). Stavové diagramy mohou modelovat dynamické chování reaktivních objektu:

třídy

případy užití

podsystémy

systémy