Jazyk UML
-
UML (unified modeling language) je standardizovaný pro vizuální modelování SW systémů
-
Zjednoduší vhled do problematiky velkých systémů
-
Používá se i v dokumentaci
-
Je velmi intuitivní
-
Modelování může mít různou preciznost a jsou různé modely
Strukturální prvky v UML
- Podstatná jména jazyka (pro koncepty nebo fyzické věci)
- Třídy - formální popis objektů mající stejné vlastnosti
- Aktivní třídy - třídy obsahující více procesů či vláken
- Rozhraní - kolekce operací popisující poskytovanou službu
- Spolupráce - popisuje interakci mezi elementy
- Případ užití - popis sekvence akcí s výstupem, které by měl systém umožnit
- Komponenty - modulární součásti systému (skrývají implementaci za rozhraní)
- Artefakty - části systému s fyzickou informací (soubory, knihovny, …)
Chování v UML
- Dynamické části jazyka (slovesa popisující chování)
- Propojují strukturální prvky jazyka
- Interkace - soubor zpráv, které si objekty vyměnují
- Stavový stroj - sekvence stavu objektu, ve kterých se během života vysktyuje
- Aktivita - sekvence akcí, které objekt provádí
Seskupování objektů
- Pro přehlednost se organizují do skupin
- Balíčky - pouze k organizaci návrhu (ve vývoji zanikme)
- Poznámky - textová specifikace
Vztahy v UML
- závislosti - sémantické vztahy
- asociace - strukturální vztahy, popis vazby (1:N)
- agregace - “has a”
- generalizace - popis dědičnosti
- generalizace - jeden vyžaduje, druhý zaručuje (funkcionalitu)
- n-ární vztahy (mezi vícero objekty)
Diagramy v UML
- vizualizace z různých úhlů pohledu
- jasné definice = 13 diagramů
- každý jiná část problematiky
- při dodržení pravidel možno “vytvářet nové”
- class diagram
- component diagram - zapouzdřené třídy + jejich rozhraní
- object diagram - objekty ze tříd v konkrétním čase (před/po interakci)
- artefact diagram - vnitřní fyzická stránka systému (knihovny, soubory)
- diagram nasazení - fyzická implementace, custom objekty (server, počítače, …)
- diagram případů užití - aktéři + co používají
- sekvenční diagram - spolupráce objektů v čase
- komunikační diagram - struktura objektů při zasílání zpráv (není časová osa ⇒ číslování)
- stavový diagram - změna stavu objektu při událostech
- diagram aktivit - složitější případy užití (větvení atd.)
Diagram tříd
- Zobrazuje: třídy, rozhraní
- Jde často generovat z OOP kódu (nebo opačně)
- Pouze statická hierarchie
- Umožňuje modelovat vztahy mezi třídami
- Znaménka u atributů i metod mají význam (veřejné, privátní, protected)
Sekvenční diagram
- Zobrazuje spolupráci objektů v času (formou zasílání zpráv obvykle)
- Obvykle se znázorňuje v rámci 1 případu užití
- Čas roste shora dolů
Stavový diagram
- Zobrazuje stavový stroj daného objektu
- Dynamický pohled na systém (přechody, události, aktivity)
- Změna stavu objektu při konkrétní události
- Má konečný počet stavů (podobné konečným automatům z KMI/FJ)
- Obvykle řízen vnějším vstupem
Diagram aktivit
- Složitější dynamické případy užití
- Zobrazuje podmínky a konkrétní hodnoty při vstupu/výstupu do/z akce
- Zobrazuje tok dat (řídící tok)