UML: Porovnání verzí
(Není zobrazeno 34 mezilehlých verzí od stejného uživatele.) | |||
Řádek 1: | Řádek 1: | ||
− | |||
[[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ů. <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 komunikaci mezi vývojáři (a zadavateli) | + | 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''' | ||
Řádek 18: | Řádek 17: | ||
*<u>stavební bloky:</u> základní elementy modelování v UML; | *<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>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 | + | *<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=== | ===Stavební bloky UML=== | ||
− | Jazyk UML obsahuje tři stavební bloky, kterými jsou předměty, vztahy a diagramy. | + | Jazyk UML obsahuje tři stavební bloky, kterými jsou předměty, vztahy a [[Diagram|diagramy]]. |
====Předměty==== | ====Předměty==== | ||
Řádek 32: | Řádek 31: | ||
====Vztahy==== | ====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í | + | [[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. |
Řádek 38: | Řádek 37: | ||
*<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>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> | + | *<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>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> | *<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> | ||
Řádek 47: | Řádek 46: | ||
==Typy UML diagramů== | ==Typy UML diagramů== | ||
[[File:Uml diagram2.png|thumb|Hierarchie UML]] | [[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á | + | 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>==== | ====<u>Typy diagramů</u>==== | ||
Řádek 56: | Řádek 55: | ||
*'''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 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 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 | + | *'''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 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 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 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 | + | *'''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í=== | ||
Řádek 68: | Řádek 67: | ||
*'''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 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 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 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í. | *'''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í. | ||
Řádek 74: | Řádek 73: | ||
*'''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. | *'''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> | *'''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 | + | 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 110: | Řádek 136: | ||
===Klíčová slova=== | ===Klíčová slova=== | ||
− | UML, | + | UML, modelování, grafický jazyk, vizualizace |
[[Kategorie: Informační studia a knihovnictví]] | [[Kategorie: Informační studia a knihovnictví]] | ||
[[Kategorie: Informační technologie, knihovnické technologie]] | [[Kategorie: Informační technologie, knihovnické technologie]] |
Aktuální verze z 28. 6. 2021, 10:10
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ů
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]
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,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,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,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,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