OBSAH WEBU
ČTĚTE!
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
temata:31-uml:main [2016/05/27 17:07] xpavel27 [Časti UML] |
temata:31-uml:main [2016/05/27 17:33] (aktuální) xpavel27 [Potvrzení] |
||
---|---|---|---|
Řádek 93: | Řádek 93: | ||
* «bind» – u generický tříd zobrazuje navázání objektu na generický parametr <T> | * «bind» – u generický tříd zobrazuje navázání objektu na generický parametr <T> | ||
- | {{ temata:31-uml:use.png?400 }} | + | {{ temata:31-uml:use.png?300 }} |
== Realizacia == | == Realizacia == | ||
* je vztah mezi třídou a rozhraním, který říká, že třída implementuje všechny operace z daného rozhraní. | * je vztah mezi třídou a rozhraním, který říká, že třída implementuje všechny operace z daného rozhraní. | ||
Řádek 99: | Řádek 99: | ||
* Rozhraní je specifický typ třídy, která slouží pouze jako závazná definice chování, neobsahuje implementaci. | * Rozhraní je specifický typ třídy, která slouží pouze jako závazná definice chování, neobsahuje implementaci. | ||
- | {{ temata:31-uml:realizace.png?400 }} | + | {{ 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 107: | Řá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ému, jeho účastníky, interakci mezi nimi a akce, které 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í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ý. | ||
- | {{: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 zobrazeni, ale používá se tabulka, která 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 126: | Řá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 nimi. Bě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, a 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 a 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ů 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. | + | * **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 | ||
- | {{: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 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. | + | {{ :temata:31-uml:spoluprace.png?400 }} |
- | Vazby mezi objekty se mohou v průběhu měnit a jejich abstrakce je zachycena právě v diagramu tříd. | + | == Diagramy interakce - Sekvenční diagramy== |
- | 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). | + | * **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. | ||
+ | |||
+ | {{ :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 (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. | ||
+ | |||
+ | {{ :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 pří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 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, . . . ). | ||
+ | |||
+ | {{ :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~~ |