SZZ » temata » 31-uml

Toto je starší verze dokumentu!


Export page to Open Document format

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ů

  • 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).

  • 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

Diskuze

Martin Pavelkaxpavel27, 2016/05/27 17:33

Doplnene

Vložte svůj komentář
 
temata/31-uml/main.1464361658.txt.gz · Poslední úprava: 2016/05/27 17:07 autor: xpavel27
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki