Kalábovi

Kalábovic wikina

Uživatelské nástroje

Nástroje pro tento web


pitel:isz:jazyk_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

pitel:isz:jazyk_uml [03. 07. 2012, 13.53:44] (aktuální)
Řádek 1: Řádek 1:
 +====== Jazyk UML ======
 +[[wp>​Unified Modeling Language]], [[http://​edn.embarcadero.com/​article/​31863|Practical UML™: A Hands-On Introduction for Developers]]
 +
 +Jazyk UML je jednotný grafický jazyk pro modelování. Umožňuje pomocí různých typů diagramů zachytit systém z různých pohledů a na různé úrovni abstrakce.
 +===== Struktura ​ =====
 +Jako stavební bloky se označují prvky, relace a diagramy. **Prvky** jsou samostatné elementy a dělí se na:
 +  * strukturální prvky -- třída, rozhraní, případ užití, aktivní třída, uzel
 +  * chování -- interakce, stav
 +  * seskupení -- balíčky používané k seskupování sémanticky souvisejících prvků
 +  * poznámky -- anotace, které lze k modelu připojit
 +
 +Relace lze dělit na:
 +  * asociace -- abstrakce množiny spojení mezi objekty
 +  * agregace a kompozice -- vyjadřuje vztah části k celku
 +  * závislost
 +  * zobecnění
 +  * realizace
 +
 +Mechanismy používané v různých typech diagramů:
 +  * specifikace -- textový popis jednotlivých elementů
 +  * ozdoby -- volitelné doplňky elementů
 +  * podskupiny -- popisují různé způsoby vidění "​světa"​ (klasifikátor,​ instance, rozhraní a implementace)
 +
 +===== Diagramy UML =====
 +==== Diagram chování ====
 +Zachycuje chování procesu nebo systému. Např. diagram aktivit, stavový diagram, diagram případů užití...
 +
 +==== Diagram struktury ====
 +Zachycuje elementy nezávislé na čase. Např. diagram tříd, diagram vnitřní struktury, diagram komponent...
 +===== Diagram případů užití (Use Case Diagram) =====
 +{{ http://​upload.wikimedia.org/​wikipedia/​commons/​8/​83/​UML_Use_Case_diagram.png}}
 +[[wp>Use case diagram]]
 +
 +Umožňuje popsat chování systému z hlediska uživatele. Specifikuje typy uživatelů a jaké činnosti uživatelé vykonávají. Následuje popis jednotlivých prvků diagramu.
 +
 +==== Aktér ====
 +Reprezentuje prvek okolí systému, který komunikuje se systémem. Může buď předávat informace systému nebo je od něj přijímat. Aktér reprezentuje roli, kterou hraje člověk, hardwarové zařízení nebo externí systém ve vztahu k modelovanému systému. Role není funkcní místo v organizaci, ale je to role při používání systému. Jeden člověk může plnit více rolí a jednu roli může vykonávat více lidí. **Primární aktér** je osoba nebo systém, který má určitý úkol v systému. **Pomocný aktér** je další osoba nebo systém, který poskytuje službu potřebnou pro splnění úkolu primárního aktéra (např. tiskárna, webová služba, člověk).
 +
 +==== Případ užití ====
 +Specifikuje část funkcionality systému, kterou využívá aktér a která plní určitý cíl. Měl by mít název, který vyjadřuje jeho cíl ("​Otevřít účet"​). Vztah mezi aktérem a případem užití se označuje jako **komunikační asociace** a znázorňuje se čarou mezi oběma entitami. Pokud čára končí čipkou, pak šipka jde směrem od strany, která začíná interakci (aktér -> případ užití). Mezi samotnými případy užití existují tři vztahy -- include, extend a generalizace/​specifikace.
 +
 +=== Vztah include ===
 +Při vytváření modelu případů užití se mohou některé případy užití v různých částech navrhovaného systému opakovat. Příkladem může být přihlášení do systému nebo vyběr prvku ze seznamu. V těchto případech je lepší opakující se činnost vyjmout a do samostatného případu užití a odkázat se na ni v jiných případech užití pomocí vztahu include. Základní("​nadřazený"​) případ užítí nemůže existovat samostatně bez případu include. Př.: Máme Studenta (aktér) a ten se chce registrovat na bakalářku. V Use Case je nakreslená možnost "​Registrovat se na téma" a ta má include vztah k "​zobrazit vypsaná témata"​. Jakmile student klikne na "​registrovat se na témata"​ zobrazí se mu automaticky vypsaná témata. Když se ale témata nevypíšou,​ tak se nikam nezaregistruje -> závislost. ​
 +
 +=== Vztah extend ===
 +Tato vazba představuje rozšíření původního případu užití. K rozšíření dochází v tzv. bodě rozšíření a to jen když je splněna podmínka rozšíření. Př.: Vedoucí bakalářek vypisuje témata. Systém mu poskytuje možnost "​Vytvořit jako kopii existujícího zadání"​ (extend). Může tedy založit téma práce a navíc může využít extendu. Ale i bez něj to bude fungovat. ​
 +
 +=== Generalizace/​specializace ===
 +Umožňuje zachytit obecné a speciální chování. Složitý koncept, zhoršuje srozumitelnost modelu. Doporučuje se nepoužívat. ​
 +===== Diagram tříd (Class Diagram) =====
 +{{ http://​upload.wikimedia.org/​wikipedia/​en/​c/​c9/​BankAccount.png}}
 +[[wp>​Class diagram]]
 +
 +Představuje statický pohled na modelovaný systém. Zachycuje strukturu tříd v systému, nelze v něm vyjádřit interakce mezi třídami, ke kterým dochází v čase. ​
 +==== Třída ====
 +Jedná se o základní prvek diagramu tříd. Třída je abstrakcí objektů se stejnými vlastnostmi,​ stejným chováním a stejnýmí vztahy k ostatním objektům. Na úrovni analýzy třída představuje typ objektu a můžeme si ji představit jako množinu objektů stejného typu. Na úrovni návrhu softwarové aplikace a implementace si třídu můžeme představit jako šablonu, podle které se vytváří konkrétní objekty (instance). Třída, která vytváří instance, se nazývá **konkrétní**. Ne každá třída však vytváří své instance, potom hovoříme o **abstraktní třídě**, její název se v UML značí kurzivou. Popis třídy obsahuje její název, atributy a metody. ​
 +
 +Třídy lze seskupovat do tzv. **balíčků (packages)**. ​
 +
 +Mezi třídami dochází také ke "​spolupráci"​. Takové vztahy modelujeme jako asociace
 +  * běžná asociace -- zisk reference
 +  * násobnost (kardinalita) -- určuje kolik instancí jedné třídy má vztah k jedné instanci druhé
 +  * role -- představuje jeden konec asociace (zaměstnanec - zaměstnavatel),​ unární (sama k sobě), binární
 +  * asociační třída -- vazba nese nějakou informaci, vazba "​pracuje pro" u tříd zaměstnanec -- zaměstnavatel může mít detaily jako datum nástupu, plat...
 +  * agregace s kvalifikátorem (eh?)
 +  * agregace -- vnější objekt obsahuje vnitřní objekty (Auto -- 4 kola, 1 karoserie)
 +  * kompozice -- jeden objekt bez druhého nemohou být (kniha se skládá z kapitol, kapitola nemůze existovat bez knihy; označuje se plným kosočtvercem s plnou čarou)
 +
 +===== Shrnutí =====
 +  * struktura UML: prvky, relace, diagramy
 +  * diagram chování vs diagram struktury
 +  * d. případu užití (include, extend), d. tříd (asociace, násobnost, agegace vs kompozice, role, realizace)
 +  * balíčky
 +  * moderní přístup: převod UML na kód a zpátky
  
/var/www/wiki/data/pages/pitel/isz/jazyk_uml.txt · Poslední úprava: 03. 07. 2012, 13.53:44 (upraveno mimo DokuWiki)