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ů:

Časti UML

Prvky

Strukturní: třída, případ užití, komponenta

Chování: interakce, stav

Seskupování: modul, balíček, podsystém (angl. package)

Doplňkové: komentáře a poznámky

Vztahy

Asociace (spojení mezi prvky)

Závislost (změna v jednom prvku ovlivní jiný závislý prvek)

Agregace, Kompozice (vyjádření dekompozice prvku na podčásti)

Generalizace (vztah mezi obecnějším a specifičtějším prv-kem)

Realizace (vztah mezi předpisem a jeho uskutečněním deklarace/instanciace)

Mechanizmy

Specifikace – textový popis jednotlivých elementů

Ozdoby – volitelné doplňky elementů

Podskupiny – různé způsoby „vidění světa“ (klasifikátor, instance, rozhraní, implementace)

Asociacia

slouží k zachycení vztahů a informací mezi třídami z několika různých perspektiv

vyjadruhe identifikaci vztahu mezi třídami - Asociace má svůj název

vyjadruje násobnost vztahu - kolik instancí třídy A může být svázáno s instancí třídy B

Určení jakou roli hraje objekt ve vztahu (např. zaměstnanec, zaměstnavatel apod.)

Asociace se graficky znázorňuje čárou mezi asociovanými třídami.

Násobnost a role se uvádějí u čáry blíže k objektu, ke kterému se váží.

Stupeň asociace – kolik tříd se podílí (participuje) v jedné asociaci

2 (binární)

3 (ternální)

Povýšení asociace na třídu. V objektově orientovaném návrhu lze asociaci povýšit na třídu.

V případech, kdy chceme asociaci přiřadit parametry, které nelze přiřadit objektu v asociaci.

Jiným případem povýšení je eliminace vícenásobných asociací.

Agregace

vyjadřuje slabší vztah mezi objektem reprezentujícím celek a objekty reprezentující části celku.

příklad: Vztah firma-zaměstnanci

objektu reprezentujícímu celek se říká agregační objekt (seskupený)

jeho částem pak konstituční objekty (tvořící).

seskupený objekt může existovat bez svých konstitučních objektů

agregace bývají homeometrické (tj. konstituenti patří do téže třídy).

Kompozice

vyjadřuje silnější vztah mezi objektem reprezentujícím celek a objekty reprezentující části celku

Příklad: člověk - orgány

Objektu reprezentujícímu celek se říká kompozitní (složený) objekt

jeho částem pak komponentní (složkové) objekty.

Složený objekt nemůže existovat bez svých komponent.

Složený objekt většinou řídí životní dráhu svých komponent

Komponentní objekt může být součástí pouze jedné kompozice.

Implicitní násobnost každé složky je 1.

Kompozice bývají heterometrické (tj. komponenty patří do různých tříd).

Generalizacia

zachycuje vazbu mezi třídami, kterou již známe – dědičnost.

Zobrazuje se šipkou s prázdným trojúhelníkem.

Existuje vícenásobná dědičnost

Zavislost

vyjadřuje jiné různé vztahy mezi objekty či třídami.

Typ závislosti se v diagramech označuje pomocí stereotypů

«use» - objekt třídy A (klient) sice neobsahuje objekt třídy B (dodavatel), tedy není jeho složkou, ale přesto jej potřebuje.

«instantiate» – klient je instancí dodavatele

«trace» – obecná vazba mezi elementy, které jsou na různé úrovni abstrakce (analýza/návrh)

«refine» – upřesnění, např. dvě třídy, jedna z nich je optimalizovaná na výkon

«friend» – řízené narušení zapouzdření,klient má přístup k privátním prvkům dodavatele

«bind» – u generický tříd zobrazuje navázání objektu na generický parametr <T>

Realizacia

je vztah mezi třídou a rozhraním, který říká, že třída implementuje všechny operace z daného rozhraní.

Libovolný objekt pracující s tímto rozhraním pak umí pracovat i s jeho implementačními třídami

Rozhraní je specifický typ třídy, která slouží pouze jako závazná definice chování, neobsahuje implementaci.

UML v etapách vývoje softwaru

1.Specifikace požadavků

Vyuzivaju sa

diagramy případů užití

detaily případů užití

specifikace (strukturovaný text)

slovníky pojmů

Diagramy případů užití

Info

Používají se pro zachycení požadavků – případů užití a jejich účastníků.

Každý případ užití má svůj název, jednoznačný identifikátor a specifikaci.

Znázorňujú hranice, účastníkov, interakcie medzi aktérmi a prípady použitia

Zobecniť môžeme

zobecnění účastníka = student,ucitel > uzivateľ

zobecnění případu užití = najdiCD, najdiKnihu > najdiProdukt

relace «include»

tato relace vyjadřuje situaci, kdy jeden případ užití zahrnuje v sobě jeden či více jiných případů užití.

vložený případ se musí vždy použít

relace «extend»

Tato relace vyjadřuje situaci, kdy jeden případ užití může rozšiřovat funkcionalitu jiných případů užití.

Oproti relaci include, případ v relaci extend je nepovinný.

Detaily případů užití

Info

Samotné diagramy případů užití pouze ukazují, jaké akce je možné v systému vykonávat a kdo je může vykonávat.

V mnoha případech je však tato informace málo konkrétní, nedá se z ní poznat co vše se děje a za jakých podmínek.

Pro konkretizaci (specifikaci) případu užití existuje Detail případu užití.

Každá specifikace případu užití má své vstupní podmínky, tok událostí a výstupní podmínky.

Pro jeho zobrazení neexistuje standard, většinou se však používá tabulka

2. Analýza

Vyuzivaju sa:

diagramy analytických tříd

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

diagramy aktivit

analytické balíčky

objektové diagramy

Analytické třídy

Info

mapují pojmy problémové domény na abstraktní entity modelu – třídy.

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.

Obsahuje

jen nejpodstatnější atributy a operace

minimální množinu odpovědností

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

Objektove diagrami

Info

Objektové diagramy patří mezi diagramy dynamické.

Zachycují konkrétní instance tříd a jejich vazby v určitém čase či podmínce

Vazby mezi objekty se mohou v průběhu měnit

Analytické balíčky

Info

souvisejí s dekompozicí problému

umožňují souběžnou práci na více částech (balíčcích) v etapě návrhu

seskupují sémanticky související elementy a definují hranice tohoto seskupení.

Více balíčků můžeme řešit souběžně.

poskytuje zapouzdření prostoru jmen

definuje viditelnost zapouzdřených elementů

mohou obsahovat:

případy užití

analytické třídy

realizace případů užití

další balíčky

Diagramy interakce - Diagram spolupráce

Info

Diagramy interakce zahrnují

diagramy spolupráce, které zdůrazňují strukturálí relace mezi objekty

sekvenční diagramy které zdůrazňují časově orientovanou posloupností předávání zpráv mezi objekty, bývají přehlednější.

Diagramy interakce - Sekvenční diagramy

Info

Reprezentují časově orientovanou posloupnost předávání zpráv mezi objekty

bývají přehlednější než diagramy spolupráce

uživatelé (zákazník) jim lépe porozumí.

Ukončení života objektu je znázorněno křížem na konci časové osy objektu

umožňují definovat omezení (constraints) či význačný stav objektu.

Diagramy aktivit

Info

Diagramy aktivit reprezentují OO 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.

3. Návrh

Vyuzivaju sa

analytických třídy

stavové diagramy

návrhové podsystémy

Návrhové třídy

Info

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

Info

stavové automaty

speciálni 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 vnejší 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

Potvrzení