UML: Porovnání verzí

 
(Není zobrazeno 64 mezilehlých verzí od stejného uživatele.)
Řádek 1: Řádek 1:
{{Pracuje se}}
 
 
[[File:Uml-Activity-Beispiel2.svg|thumb|UML - proces vaření špaget]]
 
[[File:Uml-Activity-Beispiel2.svg|thumb|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ů. 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í. <ref name="JN">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</ref> Může sloužit jako užitečný nástroj k usnadnění návrhu a vývoje informačního systému. <ref name="IT">ČÁ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</ref>
+
UML (celým názvem '''Unified Modeling Language''') je grafický jazyk používaný pro vizualizaci, specifikaci, navrhování a dokumentaci [[Programový systém|programových systémů]]. <ref name="JN">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</ref> Nejrozšířenějším uplatněním UML je modelování [[Objektově orientovaný systém|objektově orientovaných systémů]]. <ref name="DI">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</ref> Slouží jako podpůrný nástroj pro [[Komunikace|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 [[Programování|programovat]]. Důležitá je srozumitelnost, rychlost nakreslení a snadnost změny či navržení alternativ řešení. <ref name="JN">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</ref> Může sloužit jako užitečný nástroj k usnadnění návrhu a vývoje [[Informační systém|informačního systému]]. <ref name="IT">ČÁ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</ref> Samotný UML jazyk neposkytuje metodiku modelování systémů, obsahuje pouze [[Syntaxe|syntaxi]], která se používá při konstruování [[Model|modelů]]. <ref name="DI">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</ref>  
  
 
'''Výhody užití UML'''
 
'''Výhody užití UML'''
* Zjednodušuje složitost  
+
 
* Udržuje otevřenou komunikaci  
+
*Zjednodušuje složitost
* Automatizuje vývoj softwaru a procesů
+
*Udržuje otevřenou komunikaci
* Pomáhá řešit přetrvávající problémy s architekturou  
+
*Automatizuje vývoj [[Software|softwaru]] a procesů
* Zlepšuje kvalitu práce  
+
*Pomáhá řešit přetrvávající problémy s architekturou
* Snižuje náklady a čas potřebný k uvedení na trh <ref name="MS">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</ref>
+
*Zlepšuje kvalitu práce
 +
*Snižuje náklady a čas potřebný k uvedení na trh <ref name="MS">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</ref>
 +
 
 +
==Struktura jazyka==
 +
 
 +
'''Skládá se ze 3 prvků, kterými jsou:'''
 +
 
 +
*<u>stavební bloky:</u> základní elementy modelování v UML;
 +
*<u>společné mechanismy:</u> UML má čtyři mechanismy, které popisují strategie přístupu k objektovému modelování, mezi nimi například mechanismy pro rozšíření;
 +
*<u>architektura:</u> organizační struktura systému, která obsahuje rozložení systému na části a zabývá se jejich propojením, interakcí a mechanismy. <ref name="DI">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</ref>
 +
 
 +
===Stavební bloky UML===
 +
Jazyk UML obsahuje tři stavební bloky, kterými jsou předměty, vztahy a [[Diagram|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:'''
 +
 
 +
*<u>Strukturní abstrakce:</u> jedná se o podstatná jména v UML modelu, jako je například třída, rozhraní, případ užití, uzel atd.
 +
*<u>Předměty chování:</u> 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.
 +
*<u>Předměty seskupení:</u> jedná se o organizační složky modelu v podobě balíků, do kterých se sdružují související prvky.
 +
*<u>Poznámky:</u> používají se jako komentáře pro bližší vysvětlení. <ref name="DI">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</ref>
 +
 
 +
====Vztahy====
 +
[[Sémantika|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ří:'''
 +
 
 +
*<u>Asociace:</u> 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.
 +
*<u>Zobecnění:</u> 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.
 +
*<u>Závislost:</u> 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.
 +
*<u>Realizace:</u> zdrojový předmět zaručuje, že splní podmínky dohody obsažené v cílovém předmětu. <ref name="DI">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</ref>
 +
 
 +
====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. <ref name="DI">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</ref>
  
 
==Typy UML diagramů==
 
==Typy UML diagramů==
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í. <ref name="MS">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</ref>
+
[[File:Uml diagram2.png|thumb|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ý manažer|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í. <ref name="MS">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</ref>
  
 
===Diagramy struktury===
 
===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í. <ref name="MS">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</ref>
+
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|databáze]] anebo [[Aplikace|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í.
 +
 
 +
====<u>Typy diagramů</u>====
 +
 
 +
*'''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 [[Hardware|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|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ě). <ref name="MS">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</ref>
  
 
===Diagramy chování===
 
===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. <ref name="MS">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</ref>
+
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.
 +
 
 +
<u>Typy diagramů</u>
 +
 
 +
*'''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|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í. <ref name="MS">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</ref>
 +
 
 +
[[Soubor:UML summary - (Autor J. Novotná - Informační systémy v podnikové praxi).png|left|náhled|UML summary - (Autor J. Novotná - Informační systémy v podnikové praxi)]]
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
  
 
==Užití UML==
 
==Užití UML==
UML lze obecně použít třemi způsoby, jako náčrt, plán anebo programovací jazyk.
+
UML lze obecně použít třemi způsoby, jako náčrt, plán anebo [[Programovací jazyk|programovací jazyk]].
 +
 
 
===UML jako náčrt===
 
===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 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===
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 plán je o mnoho detailnější než náčrt. Diagramy jsou vytvářeny v [https://www.cadkon.eu/cz/plnohodnotny-cad-nastroj-01.html 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===
 
===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ů. <ref name="IT">ČÁ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</ref>
 
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ů. <ref name="IT">ČÁ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</ref>
  
 +
===UML nástroje===
 +
Mezi oblíbené UML nástroje patří:
 +
* Microsoft Visio
 +
* Draw.IO
 +
* Edraw Max
 +
* Lucidchart
 +
* Visual Paradigm a mnoho dalších…
  
 
==Odkazy==
 
==Odkazy==
Řádek 39: Řádek 120:
  
 
===Doporučená literatura===
 
===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.
+
*Rydval, Slávek. 30+3 pravidel UML. 1. vydání. Praha: Elebedial, 2021. 103 stran. ISBN 978-80-906968-6-0.
* Merunka, Vojtěch. Datové modelování. 1. vyd. Praha: Alfa Publishing, 2006. 177 s. Informatika studium. ISBN 80-86851-54-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.
* 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.
+
*Merunka, Vojtěch. Datové modelování. 1. vyd. Praha: Alfa Publishing, 2006. 177 s. Informatika studium. ISBN 80-86851-54-0.
* Š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.
+
*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===
 
===Související články===
  
 
*[[Programovací jazyk]]<br />
 
*[[Programovací jazyk]]<br />
 
+
*[[Softwarové inženýrství]]<br />
 +
*[[Software]]<br />
 +
*[[Osobní počítač]]<br />
 +
*[[Reprezentace znalostí]]<br />
  
 
===Klíčová slova===
 
===Klíčová slova===
UML, programovací jazyk, grafický jazyk, vizualizace
+
UML, modelování, grafický jazyk, vizualizace
  
[[Kategorie: Informační studia a knihovnictví]] [[Kategorie: Informační technologie, knihovnické technologie]]
+
[[Kategorie: Informační studia a knihovnictví]]  
 +
[[Kategorie: Informační technologie, knihovnické technologie]]

Aktuální verze z 28. 6. 2021, 10:10

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