Stránka ve výstavbě
Inkwell icon - Noun Project 2512.svg Na této stránce se právě pracuje. Prosím needitujte tuto stránku, dokud na ní zůstává tato šablona. Předejdete tak editačnímu konfliktu. Jestliže uběhla od poslední editace doba alespoň dvou dnů, neváhejte tuto šablonu odstranit. Inkwell icon - Noun Project 2512.svg
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), 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 dále se zabývá 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í se 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í: to se používá 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řuej 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ý diagramtedy poskytuje pohled na systém z určitého úhlu. Děli 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

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ů po tvůrce technické dokumentace, návrháře, analytiky, programátory a testery, používá konkrétní diagramy, které vyhovují jejím 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á systém, jako databáze nebo 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ůžete přizpůsobit metamodel UML pro různé platformy (např. Java Platform nebo Microsoft .NET Framework) a oblasti (např. modelování podnikových procesů, architektura orientovaná 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]

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. Používáme jej při jednání s klientem, kde nám grafická podoba problému pomůže jeho lepší pochopení a usnadní komunikaci. 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 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]


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, programovací jazyk, grafický jazyk, vizualizace