UML

UML - proces vaření špaget

UML (celým názvem Unified Modeling Language) je grafický jazyk používaný pro vizualizaci, specifikaci, navrhování a dokumentaci programových systémů. [1] Nejrozšířenějším uplatněním UML je modelování objektově orientovaných systémů. [2] Slouží jako podpůrný nástroj pro komunikaci mezi vývojáři (a zadavateli) a pro zaznamenání myšlenek a návrhů. Kreslí se pomocí něj pouze věci, které jsou podstatné pro grafické vyjádření návrhu a části návrhu před tím, než se začne programovat. Důležitá je srozumitelnost, rychlost nakreslení a snadnost změny či navržení alternativ řešení. [1] Může sloužit jako užitečný nástroj k usnadnění návrhu a vývoje informačního systému. [3] Samotný UML jazyk neposkytuje metodiku modelování systémů, obsahuje pouze syntaxi, která se používá při konstruování modelů. [2]

Výhody užití UML

  • Zjednodušuje složitost
  • Udržuje otevřenou komunikaci
  • Automatizuje vývoj softwaru a procesů
  • Pomáhá řešit přetrvávající problémy s architekturou
  • Zlepšuje kvalitu práce
  • Snižuje náklady a čas potřebný k uvedení na trh [4]

Struktura jazyka

Skládá se ze 3 prvků, kterými jsou:

  • stavební bloky: základní elementy modelování v UML;
  • společné mechanismy: UML má čtyři mechanismy, které popisují strategie přístupu k objektovému modelování, mezi nimi například mechanismy pro rozšíření;
  • architektura: organizační struktura systému, která obsahuje rozložení systému na části a zabývá se jejich propojením, interakcí a mechanismy. [2]

Stavební bloky UML

Jazyk UML obsahuje tři stavební bloky, kterými jsou předměty, vztahy a diagramy.

Předměty

Předměty představují samotné modelovací prvky a dělí se do čtyř základních kategorií, kterými jsou:

  • Strukturní abstrakce: jedná se o podstatná jména v UML modelu, jako je například třída, rozhraní, případ užití, uzel atd.
  • Předměty chování: reprezentují dynamické chování objektů. Řadí se sem například stavový stroj, který zachycuje stavy objektu a přechody mezi nimi, nebo interakce mezi objekty, jako jsou zprávy a spoje.
  • Předměty seskupení: jedná se o organizační složky modelu v podobě balíků, do kterých se sdružují související prvky.
  • Poznámky: používají se jako komentáře pro bližší vysvětlení. [2]

Vztahy

Sémantickou vazbu mezi dvěma a více předměty umožňují vyjádřit vztahy. Rozlišuje se více druhů vztahů, které se zobrazují pomocí různých typů čar.


Mezi nejčastěji používané druhy patří:

  • Asociace: definuje obecný vztah mezi dvěma předměty. Upřesnit ji lze pomocí dvou speciálních případů typu celek-část, kterými jsou agregace a kompozice.
  • Zobecnění: používá se v případě, že předmět, ze kterého vztah vychází, je specializovaným případem obecnějšího cílového předmětu a může jím být kdykoliv nahrazen.
  • Závislost: vyjadřuje vztah mezi dvěma předměty. Závislý předmět využívá určitou část jiného předmětu, proto může být ovlivňován změnami v něm.
  • Realizace: zdrojový předmět zaručuje, že splní podmínky dohody obsažené v cílovém předmětu. [2]

Diagramy

Zachycují konkrétní skupiny předmětů a vztahů uložených v modelu. Vytvořený diagram tedy poskytuje pohled na systém z určitého úhlu. Dělí se na dva hlavní typy - diagram struktury, který modeluje statickou strukturu systému a diagram chování, který modeluje dynamickou strukturu systému. [2]

Typy UML diagramů

Hierarchie UML

Jak již bylo zmíněno výše, existují dva hlavní typy UML diagramů – diagramy struktury a chování (a několik dalších v rámci těchto kategorií). Zachycují tak nejrůznější typy scénářů a diagramů, které používají různé profese. Každá role, od zákazníků a projektových manažerů až po tvůrce technické dokumentace, návrháře, analytiky, programátory a testery, používá konkrétní diagramy, které vyhovují jejich potřebám. Každé schéma tedy vyžaduje jiné zaměření a úroveň podrobností. Cílem je prostřednictvím UML vizuálně vyjádřit diagramy, které každý snadno pochopí. [4]

Diagramy struktury

Jedná se o statickou strukturu softwaru nebo systému, zobrazující různé úrovně abstrakce a implementace. Slouží k lepší vizualizaci jednotlivých struktur, ze kterých se skládá databáze anebo aplikace. Ukazují hierarchii součástí nebo modulů, jejich propojení a vzájemné interakce. Tyto nástroje umožňují ověřit, zda všechny součásti systému fungují ve vztahu s ostatními součástmi tak, jak mají.

Typy diagramů

  • Diagram tříd: tento diagram je nejběžnější v oblasti vývoje softwaru a znázorňuje logický a fyzický návrh systému a přehled jeho tříd. Podobá se vývojovému diagramu, protože třídy jsou tvořeny rámečky. Diagram zachycuje vizuální podobu jednotlivých tříd a jejich vzájemných propojení.
  • Diagram objektů: často se používá pro ověření přesnosti diagramu tříd. Ukazuje, zda bude v praxi opravdu fungovat. Diagram znázorňuje objekty systému a jejich vzájemné vztahy a lze v něm lépe odhalit případné chyby návrhu, které je zapotřebí opravit.
  • Diagram komponent: znázorňuje logické seskupení prvků a jejich vzájemné vztahy. Poskytuje zjednodušený pohled na komplexní systém jeho rozdělením na menší komponenty. Každý díl je zobrazen pomocí obdélníkového rámečku, ve kterém je jeho název. Spojovací čáry definují vztahy a závislosti jednotlivých komponent.
  • Diagram složených struktur: mimo oblast vývoje softwaru se používá jen zřídka. Podobá se diagramu tříd, ale jde více do hloubky, popisuje vnitřní strukturu více tříd a zobrazuje jejich interakce.
  • Diagram nasazení: zobrazuje hardwarové (uzly) a softwarové (artefakty) komponenty a jejich vzájemné vztahy. Vizuálně znázorňuje, kde přesně je která softwarová komponenta nasazena.
  • Diagram balíčků: znázorňuje závislosti mezi balíčky, ze kterých je model vytvořen. Hlavním cílem je zobrazit vztahy mezi různými velkými komponentami, které vytváří složitý systém.
  • Diagram profilů: jedná se spíše o jazyk než o diagram. Pomáhá vytvářet nové vlastnosti a sémantické významy UML diagramů definováním vlastních stereotypů, hodnot s příznakem a omezení. Pomocí těchto profilů si můžeme přizpůsobit metamodel UML pro různé platformy (např. Java Platform nebo Microsoft .NET Framework) a oblasti (např. modelování podnikových procesů, architekturu orientovanou na služby, zdravotnické aplikace a podobně). [4]

Diagramy chování

Zaměřují se na dynamické aspekty softwarového systému nebo procesu. Tyto diagramy ukazují funkčnost systému a zdůrazňují, co se musí v modelovaném systému dít.

Typy diagramů

  • Diagram aktivit: znázorňuje jednotlivé kroky procesu s jasným začátkem a koncem. Jedná se o soubor aktivit, které je třeba provést pro dosažení cíle. Zobrazuje, jak každá aktivita vede k následující a jak jsou všechny propojeny. Kromě vývoje softwaru lze tyto diagramy použít prakticky v každém podnikovém prostředí.
  • Diagram případů užití: popisuje, co systém dělá, ne však jakým způsobem. Případ užití je soubor událostí, ke kterým dojde, když účastník použije systém k provedení procesu. Účastník je definován jako kdokoli nebo cokoli (osoba, organizace nebo aplikace), co se systémem interaguje z vnějšku. Diagram případů užití tedy popisuje sadu posloupností a představuje funkční požadavky systému.
  • Diagram interakcí: bývá složitý a podobá se diagramu aktivit, protože oba ukazují posloupnost aktivit. Diagram interakcí je však diagram aktivit složený z různých diagramů interakcí. Používá stejný způsob záznamu jako diagram aktivit (počáteční, koncové, rozhodovací, slučovací, rozvětvovací a spojovací uzly) s dalšími prvky, jako jsou interakce, použití interakce, časové omezení a omezení trvání.
  • Diagram časování: používá se, když má rozhodující roli časování. Nezobrazuje, jak spolu objekty interagují ani jak se mění. Funkčně znázorňuje, jak objekty a účastníci jednají v průběhu času. Zaměřuje se na to, jak dlouho události trvají a k jakým změnám dochází v závislosti na omezení trvání.
  • Stavový diagram: používá se, když je zapotřebí zachytit podrobnosti složitého chování objektu. Pomáhá popsat chování jednoho objektu a jeho změny na základě interních a externích událostí.
  • Sekvenční diagram: tento vizuálně atraktivní diagram je populární i mimo vývojářskou komunitu a dokáže znázornit všechny typy podnikových procesů. Ukazuje strukturu systému a chronologicky zobrazuje sled zpráv a interakcí mezi účastníky a objekty. Znázorňují jednoduché opakování a větvení. Je vhodný pro multitasking.
  • Diagram komunikace: podobá se sekvenčnímu diagramu. Klade však důraz na komunikaci mezi objekty. Znázorňuje organizaci objektů, které se účastní interakce, a umožňuje složitější opakování a větvení. [4]
UML summary - (Autor J. Novotná - Informační systémy v podnikové praxi)










Užití UML

UML lze obecně použít třemi způsoby, jako náčrt, plán anebo programovací jazyk.

UML jako náčrt

UML diagramy můžeme používat jako náčrt. Obvykle se jedná o ručně kreslené diagramy na tabuli anebo do sešitu. Možnost náčrtu se využívá i v průběhu návrhu systému, když diskutujeme v našem týmu. Diagramy mají velmi důležitou vlastnost a tou je abstrakce. Každý diagram je pohled na systém z určitého úhlu. Zbytek systému zanedbáme a zobrazíme jen to, co je v danou chvíli důležité. UML diagramy zlepšují komunikaci a snižují riziko, že něčemu špatně porozumíme a systém bude špatně navržený.

UML jako plán

UML jako plán je o mnoho detailnější než náčrt. Diagramy jsou vytvářeny v CAD nástrojích (computer-aided design) a slouží jako plán implementace pro programátory. Usnadňují komunikaci v týmu a ulehčují implementaci systému, jelikož se díky diagramům programátoři v systému lépe orientují. Po dokončení systému slouží diagramy dále jako dokumentace. Jelikož je UML standardem, i nezasvěcený programátor se bude schopen v systému orientovat.

UML jako programovací jazyk

Třetím významem je UML jako programovací jazyk. Z detailního UML diagramu lze vygenerovat šablonu kódu, která slouží jako základ pro implementaci. V databázích se běžně tyto modely používají pro vygenerování zakládacích skriptů. [3]

UML nástroje

Mezi oblíbené UML nástroje patří:

  • Microsoft Visio
  • Draw.IO
  • Edraw Max
  • Lucidchart
  • Visual Paradigm a mnoho dalších…

Odkazy

Reference

  1. 1,0 1,1 NOVOTNÁ, Jitka. Procesní modelování a UML. Moodle pro výuku 1 Univerzita Karlova [online]. [cit. 2021-06-14]. Dostupné z: https://dl1.cuni.cz/pluginfile.php/1159938/mod_resource/content/1/04_Prezentace%20Procesn%C3%AD%20modelov%C3%A1n%C3%AD.pdf
  2. 2,0 2,1 2,2 2,3 2,4 2,5 CHYTALOVÁ, Kamila. Katalog častých chyb v UML diagramech. Brno: Masarykova univerzita, Fakulta informatiky, 2018, 42 s. Vedoucí bakalářské práce: RNDr. Stanislav Chren [cit. 2021-06-09]. Dostupné z: https://is.muni.cz/th/dqtso/Katalog_castych_chyb_v_UML_diagramech.pdf
  3. 3,0 3,1 ČÁPKA, David. Lekce 1 - Úvod do UML . ITnetwork.cz [online]. [cit. 2021-06-14]. Dostupné z: https://www.itnetwork.cz/navrh/uml/uml-uvod-historie-vyznam-a-diagramy
  4. 4,0 4,1 4,2 4,3 Jednoduchý návod k UML diagramům a modelování databází. Microsoft [online]. 2019 [cit. 2021-06-14]. Dostupné z: https://www.microsoft.com/cs-cz/microsoft-365/business-insights-ideas/resources/guide-to-uml-diagramming-and-database-modeling

Doporučená literatura

  • Rydval, Slávek. 30+3 pravidel UML. 1. vydání. Praha: Elebedial, 2021. 103 stran. ISBN 978-80-906968-6-0.
  • Lano, Kevin. Advanced systems design with Java, UML and MDA [online]. Oxford: Elsevier Butterworth-Heinemann, 2005 [cit. 2021-06-14]. Dostupné z: https://ebookcentral.proquest.com/lib/natl-ebooks/detail.action?docID=270039.
  • Merunka, Vojtěch. Datové modelování. 1. vyd. Praha: Alfa Publishing, 2006. 177 s. Informatika studium. ISBN 80-86851-54-0.
  • Koch, Miloš a Neuwirth, Bernard. Datové a funkční modelování. Vyd. 3., přeprac. Brno: Akademické nakladatelství CERM, 2008. 121 s. Učební texty vysokých škol. ISBN 978-80-214-3731-9.
  • Šešera, Ľubor, Mičovský, Aleš a Červeň, Juraj. Datové modelování v příkladech. 1. vyd. Praha: Grada, 2001. 151 s. ISBN 80-247-0049-2.

Související články

Klíčová slova

UML, modelování, grafický jazyk, vizualizace