V. Modelovací jazyk UML. Flashcards
Charakteristika UML
Charakteristika UML
Unified Modeling Language - UML:
- jednotný jazyk pro modelování – notace
- standard definovaný organizací OMG – Object Management Group
- slouží pro
- zachycení výsledků analýzy a návrhu pomocí různých typů diagramů
- vizualizaci, specifikaci, návrh a dokumentaci programových systémů
- snaha z modelů automaticky generovat kód - základ přístupu Model Driven Architecture (MDA)
- současná verze UML 2.5
UML
UML:
- nezávislý na doméně
- nezávislý na platformě
- zahrnuje mechanismus přizpůsobení – vytváření UML profilů
- UML není metodika
- UML je jazyk pro vyjádření prvků analýzy a návrhu, ale nepopisuje proces vývoje
- sjednotit se na notaci je jednodušší než na postupech
- na UML je založena řada metodik např. Rational Unified Process
CASE nástroj Astah* - CASE (Computer Aided Software Engineering) - nástroj pro modelování
Význam modelování v jednotlivých fázích projektu
Význam modelování klesá s pokročilostí fáze vývoje. Ve fázi specifikace požadavků lze kromě slovního popisu použít hrubý diagram případů užití. Ve fázi analýzy je přínos modelování velmi významný. S výhodou je zde možno použít diagram případů užití, diagram tříd a sekvenční diagram. V obou uvedených fázích je model platformě nezávislý. Ve fázi návrhu jsou již existující diagramy doplněny o platformě závislé prvky. Fáze testování může být s pomocí modelů zjednodušena, zejména vzhledem ke snadnější identifikaci kritických míst projektu apod. Modelování po zavedení projektu lze využít jako dokumentaci nebo v případě rozšiřování projektu, což je však lépe označit za nový projekt a začít opět fází specifikace požadavků.
Kategorie diagramů UML
UML 2 je 14 diagramů, které můžeme rozdělit do 3 kategorií
- Diagramy struktury (statické)
- Diagramy chování (dynamické)
- Diagramy interakcí
Diagramy struktury (statické):
Diagramy struktury (statické):
- zachycují prvky nezávislé na čase - třídy, objekty, komponenty, z nichž je tvořen systém
- diagram tříd (Class Diagram),
- diagram vnitřní struktury (Composite Structure Diagram ) nově v UML 2 zachycuje spolupráci prvku (třídy, komponenty, případu užití) s jinými částmi systému
- diagram objektů (Object Diagram)
- diagram komponent (Component Diagram),
- diagram nasazení (Deployment Diagram),
- diagram profilů (Profile Diagram),
- diagram balíčků (Package Diagram),
Diagramy chování (dynamické):
Diagramy chování (dynamické):
- zachycují chování systému nebo procesu, ukazují, jak systém skutečně pracuje – jak reaguje na vstupy, události,
- diagram případů užití (Use Case Diagram), zachycuje požadavky na systém, vymezuje systém vůči okolí
- diagram aktivit (Activity Diagram),
- stavový diagram (State Diagram)
Diagramy interakcí:
Diagramy interakcí:
- podmnožina diagramů chování, které zachycují interakce objektů
- sekvenční diagram (Sequence Diagram),
- diagram komunikace (Communication Diagram),
- diagram interakcí (Interaction Overview Diagram) - varianta diagramu aktivit, která zachycuje řízení toku v rámci systému
- diagram časování (Timing Diagram) - zachycuje změny stavu nebo podmínek objektu nebo role ve vztahu k času
Diagramy struktury (statické):
Diagramy struktury (statické):
- zachycují prvky nezávislé na čase - třídy, objekty, komponenty, z nichž je tvořen systém
- diagram tříd (Class Diagram),
- diagram vnitřní struktury (Composite Structure Diagram ) nově v UML 2 zachycuje spolupráci prvku (třídy, komponenty, případu užití) s jinými částmi systému
- diagram objektů (Object Diagram)
- diagram komponent (Component Diagram),
- diagram nasazení (Deployment Diagram),
- diagram profilů (Profile Diagram),
- diagram balíčků (Package Diagram),
Diagramy chování (dynamické):
Diagramy chování (dynamické):
- zachycují chování systému nebo procesu, ukazují, jak systém skutečně pracuje – jak reaguje na vstupy, události,
- diagram případů užití (Use Case Diagram), zachycuje požadavky na systém, vymezuje systém vůči okolí
- diagram aktivit (Activity Diagram),
- stavový diagram (State Diagram)
Diagram interakcí:
Diagramy interakcí:
- podmnožina diagramů chování, které zachycují interakce objektů
- sekvenční diagram (Sequence Diagram),
- diagram komunikace (Communication Diagram),
- diagram interakcí (Interaction Overview Diagram) - varianta diagramu aktivit, která zachycuje řízení toku v rámci systému
- diagram časování (Timing Diagram) - zachycuje změny stavu nebo podmínek objektu nebo role ve vztahu k času
Diagram případů užití -Use case diagram:
Diagram případů užití - Use Case diagram:
- spojuje potřeby zákazníka se softwarovými požadavky
- definuje hranice budovaného systému
- zachycuje požadované chování systému a typ uživatelů
- identifikuje kdo a co je v interakci se systémem
- prověřuje požadavky – pouze funkční
- případy užití často řídí celý životní cyklus vývoje SW od analýzy požadavků až po testování a údržbu
- Aktér (Actor) reprezentuje roli, která je v interakci se systémem
- Případ užití (Use case) popisuje posloupnost interakcí mezi aktérem a systémem, které nastanou když aktér používá systém k dosažení určitého cíle (popisuje funkcionalitu systému)
Prvky diagramu užití - případ užití (množina možných scénářů, aktér (uživatel systému nebo jiné systémy), vztahy (include, extend, generalizace, specializace) - generalizace i mezi aktéry, hranice systému
Diagram tříd
Diagram tříd - Class diagram :
- představuje statický pohled na systém
- reprezentuje strukturu tříd v rámci systému
- u každé třídy zachycuje atributy a metody a vyjadřuje vztahy mezi třídami
- konvence:
- jméno třídy - začíná velkým písmenem, tučně, vycentrovat
- atributy a metody - zarovnat vlevo s malým písmenem
- jména abstraktních tříd a metod kurzívou
- Viditelnost položek dle standardu: + public, # protected, - private, ~ v rámci balíčku
-
Tři úrovně diagramu tříd
- Analytický (konceptuální) model
- zachycuje jen byznys třídy
- název třídy
- název klíčových atributů
- název některých klíčových metod
- používají se názvy s diakritikou, terminologie věcné oblasti
- relace mezi třídami
-
Designový (technologický) model
- Vychází z konceptuálního modelu
- doplnění viditelnosti atributů a metod, datových typů, metod, parametrů metod, návratových hodnot metod apod.
- Realizační (implementační) model
- Zaměřuje se na „grafické zobrazení implementovaného kódu“.
- Mezi prvky používané v diagramu tříd lze zařadit:
- třídy (classes)
- asociace (associations)
- rozhraní (interfaces)
- balíčky (packages)
- Každá třída má popsány features (atributy + metody)
- Omezení propojení tříd
- Analytický (konceptuální) model
Sekvenční diagram:
Sekvenční diagram:
- zachycuje graficky průběh zpracování v systému (často v rámci případu užití)
- zobrazuje posloupnost zasílání zpráv mezi objekty
- nejpoužívanější UML diagram pro dynamické modelování
- Zpráva:
- pojmenovaná čára se šipkou
- schopnost objektu přijímat určitou zprávu znamená, že na tuto zprávu objekt spustí některou z metod
- na základě zpráv můžeme určovat metody objektu
- u objektů, u kterých končí „šipka“, vznikne nějaká metoda
- Druhy zpráv:
- synchronní zpráva (jednoduchá) - vysílající objekt předá řízení přijímajícímu objektu a sám čeká na zpracování odeslané zprávy
- asynchronní zpráva objekt posílá zprávu druhému objektu a nečeká na ukončení činnosti druhého objektu
- Klasifikátor - use case, třída, objekt, aktér
Diagram aktivit - Activity diagram:
Diagram aktivit - Activity diagram:
- zobrazuje posloupnost aktivit, které podporují jak sekvenční, tak paralelní chování
- Použití: modelování byznys procesů, modelování logiky uvnitř případu užití nebo scénáře případu užití, modelování logiky byznys pravidla, OO alternativa vývojových diagramů
Prvky diagramu aktivit:
- aktivita (značena obdélníkem)
- vlastnosti aktivity: dále nedělitelná, není ji možné přerušit, okamžitá, má jeden vstup a jeden výstup
- Tok - nastává automaticky po ukončení aktivity (značen šipkou)
- Rozhodování (značeno kosočtvercem)
- počet vstupů či výstupů toků není omezen, každý výstupní tok má definovánu výstupní podmínku, podmínky musí být definovány tak, že je splněna pouze jedna, lze použít podmínku jinak
- Rozvětvení - umožňuje modelovat paralelní zpracování
- rozcestí (fork) jeden vstup, několik výstupů dojde k aktivaci všech výstupních toků paralelně – pořadí není podstatné
- spojení (join) několik vstupů, jeden výstup dochází k synchronizaci všech paralelně běžících vláken
- plavecké dráhy - lze využít pro modelování nositele aktivit