SZZ » temata » 31-uml

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

temata:31-uml:main [2011/03/19 16:13]
sgs
temata:31-uml:main [2016/05/27 17:33] (aktuální)
xpavel27 [Potvrzení]
Řádek 1: Řádek 1:
 +~~ODT~~
 +
 =====Jazyk UML===== =====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). **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).
Řádek 4: Řádek 6:
 **Pozor**, častá chyba, nepatří sem ER diagram! **Pozor**, častá chyba, nepatří sem ER diagram!
  
-UML operuje s pojmem pohled (view). Pohled systému je projekce systému na je- +UML operuje s pojmem **pohled** (view). Pohled systému je projekce systému na jeden z jeho relevantních aspektů. \\ 
-den z jeho relevantních aspektů. Taková projekce se zaměřuje na příslušný aspekt +Taková projekce se zaměřuje na příslušný aspekt a ignoruje ostatní. \\ 
-a ignoruje ostatní. Jak jistě vyplývá z podstaty věci, je vhodné vytvářet několik +Jak jistě vyplývá z podstaty věci, je vhodné vytvářet několik různých pohledů na tentýž systém. \\ 
-různých pohledů na tentýž systém. Pohledy nad systémem jsou pak modelovány +Pohledy nad systémem jsou pak modelovány prostřednictvím vhodných nástrojů (modelů) poskytovaných UML. \\ 
-prostřednictvím vhodných nástrojů (modelů) poskytovaných UML. Můžeme ro- +Můžeme rozlišit tyto základní pohledy: 
-zlišit tyto základní pohledy: +  * **Strukturální pohled** popisuje vrstvu mezi objekty a třídami, jejich asociace a možné komunikační kanály. 
-  *Strukturální pohled (structural view) 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. 
-  *Pohled chování (behavior view) popisuje, jak systémové komponenty (objekty) interagují, charakterizuje reakce na vnější systémové operace. +  * **Datový pohled** popisuje stavy systémových komponent (objekty) a jejich vazby. 
-  *Datový pohled (data view) 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.
-  *Pohled rozhraní (interface view) 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ů: Nabízí několik základních diagramů:
Řádek 19: Řádek 20:
 {{:temata:31-uml:clipboard02.jpg|}} {{:temata:31-uml:clipboard02.jpg|}}
  
 +====Č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í.
 +
 +{{ temata:31-uml:asociace1.png?400 }}
 +{{ temata:31-uml:asociace2.png?400 }}
 +== 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).
 +
 +{{ temata:31-uml:agregace.png?300 }}
 +
 +== 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).
 +
 +{{ temata:31-uml:kompozice.png?400 }}
 +== 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
 +
 +{{ temata:31-uml:zobecneni.png?400 }}
 +== 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>
 +
 +{{ temata:31-uml:use.png?300 }}
 +== 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.
 +
 +{{ temata:31-uml:realizace.png?300 }}
 ====UML v etapách vývoje softwaru ==== ====UML v etapách vývoje softwaru ====
-===1. Specifikace požadavků===+ 
 +=== 1.Specifikace požadavků === 
 +  * **Vyuzivaju sa**
   *diagramy případů užití   *diagramy případů užití
   *detaily případů užití   *detaily případů užití
Řádek 26: Řádek 109:
   *slovníky pojmů   *slovníky pojmů
  
-**Diagramy případů užití (use case diagram)**+== Diagramy případů užití ==
  
-Znázornnují hranice systémujeho účastníkyinterakci mezi nimi akcekteré mohou provádět.+  * **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íkovinterakcie medzi aktérmi 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ý.
  
-{{:temata:31-uml:clipboard04.jpg|}}+{{ :temata:31-uml:clipboard04.jpg }}
  
-**detaily případů užití**+== Detaily případů užití ==
  
-Slouží pro konkretizaci jednotlivých případů užítí. Neexistuje standard zobrazeniale používá se tabulkakterá obsahuje vstupní podmínky, výstupní podmínky a tok událostí.+  * **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
  
-{{:temata:31-uml:clipboard01.jpg|}}+{{ :temata:31-uml:clipboard01.jpg?400 }}
  
-===2. Analýza===+=== 2. Analýza === 
 + 
 +  * **Vyuzivaju sa:**
   *diagramy analytických tříd   *diagramy analytických tříd
   *realizace případů užití (diagramy interakce)   *realizace případů užití (diagramy interakce)
Řádek 45: Řádek 147:
   *objektové diagramy   *objektové diagramy
  
-**Analytické třídy**+== 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 nimiBěhem etapy návrhu jsou analytické třídy upřesňovány do jedné či více návrhových tříd.  +  * **Info** 
-Analytická třída +  mapují pojmy problémové domény na abstraktní entity modelu – třídy. 
-  *obsahuje jen nejpodstatnější atributy a operace +  * není návrhová třída, tj. analytická třída slouží pouze pro identifikaci entit v řešené problematice a vztahů mezi nimi 
-  *obsahuje minimální množinu odpovědností +  * Během etapy návrhu jsou analytické třídy upřesňovány do jedné či více návrhových tříd. 
-  *obsahuje minimum vazeb na jiné (analytické) třídy+  * Obsahuje 
 +    * jen nejpodstatnější atributy a operace 
 +    * minimální množinu odpovědností 
 +    * minimum vazeb na jiné (analytické) třídy
  
-**Analytické balíčky**+{{ :temata:31-uml:analyticke.png?400 }}
  
-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é +== Objektove diagrami ==
-(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** +  * **Info** 
-Diagramy interakce zahrnují diagramy spolupráce, které zdůrazňují strukturálí relace mezi objekty, sekvenční +  * Objektové diagramy patří mezi diagramy dynamické. 
-diagramy které zdůrazňují časově orientovanou posloupností předávání zpráv mezi objekty. Bývají přehlednější +  * Zachycují konkrétní instance tříd jejich vazby v určitém čase či podmínce 
-než diagramy spolupráce, uživatelé lépe porozumí sekvenčnímu diagramu.+  * Vazby mezi objekty se mohou v průběhu měnit
  
-{{:temata:31-uml:aa.jpg|}}+{{ :temata:31-uml:ads.jpg }}
  
-**Diagramy aktivit**+== Analytické balíčky ==
  
-Diagramy aktivit reprezentují objektově orientované diagramy toků lze je připojit 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 edevším na modelování manažerských procesů. Diagram aktivit obsahuje počátek a konec, stavy aktivity a echody mezi stavy.+  * **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 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: 
 +    * ípady užití 
 +    * analytické třídy 
 +    * realizace ípadů užití 
 +    * další balíčky
  
-{{:temata:31-uml:sda.jpg|}}+{{ :temata:31-uml:balicky.png?400 }}
  
-**Objektové diagramy**+==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ší.
  
-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 í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+{{ :temata:31-uml:spoluprace.png?400 }} 
-Vazby mezi objekty se mohou v průběhu měnit jejich abstrakce je zachycena právě v diagramu íd+== Diagramy interakce - Sekvenční diagramy== 
-Identifikace objektu sestává ze dvou částí – jména třídykteré je instancí (uvádí se za dvojtečku) a ípadného jména objektu (pokud objekt má jménouvádí se ed dvojtečkou).+  * **Info** 
 +  * Reprezentují časově orientovanou posloupnost 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) čvýznačný stav objektu
 + 
 +{{ :temata:31-uml:aa.jpg }} 
 + 
 +== Diagramy aktivit == 
 +  * **Info** 
 +  * Diagramy aktivit reprezentují OO diagramy toků a lze je připojit k libovolnému modelovanému elementu (ída, balík, apod. 
 +  * Diagram aktivit je zvláštním případem stavového automatukterý je určen edevším na modelování manažerských procesů.  
 +  * Diagram aktivit obsahuje počátek a konecstavy aktivity a echody mezi stavy. 
 + 
 +{{ :temata:31-uml:sda.jpg }}
  
-{{:temata:31-uml:ads.jpg|}} 
  
 ===3. Návrh=== ===3. Návrh===
-  *upřesňování analytických diagramů (diagramy návrhových tříd, realizace ípadů užití) +  * **Vyuzivaju sa** 
-  *stavové diagramy +  * analytických třídy 
-  *návrhové podsystémy+  * 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 í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, . . . )
 + 
 +{{ :temata:31-uml:navrhove.png?400 }} 
 +  
 +==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
  
-**Návrhové třídy**+{{ :temata:31-uml:dasa.jpg?300 }}
  
-Specifikace návrhových tříd je na takovém stupni, že je lze přímo implementovat. Jedná se o upřesnění +===== Potvrzení =====
-analytických tříd. Využití tříd z doménového řešení (knihovny, vrstva aplikačního serveru, GUI, . . . ).+
  
-**Stavové diagramy** +<doodle single login|31> 
-  *stavové automaty +^ OK ^ !!! ^ 
-  *speciálnı´ případ stavového automatu je diagram aktivit (modelování´ manažerských procesů, účastní se více objektů) +</doodle>
-  *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í. +{{tag>george IUS2}}
-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+
  
-{{:temata:31-uml:dasa.jpg|}}+~~DISCUSSION~~
temata/31-uml/main.1300547593.txt.gz · Poslední úprava: 2011/03/19 16:13 autor: sgs
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki