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
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
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ů
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
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ě.
mohou obsahovat:
případy užití
analytické třídy
realizace případů užití
další balíčky
Diagramy interakce - Diagram spolupráce
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í
31 |
Celé jméno | OK | !!! |
Martin Pavelka | | |
| 1 | |
Diskuze
Doplnene