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]

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. [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 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