Diagramy UML: Charakteristiky, diagramy a typy

โšก Chytrรฉ shrnutรญ

Diagramy UML poskytujรญ standardizovanรฝ vizuรกlnรญ jazyk pro modelovรกnรญ softwarovรฝch systรฉmลฏ, helpping Vรฝvojovรฉ tรฝmy dokumentujรญ objektovฤ› orientovanรฉ nรกvrhy, jasnฤ› komunikujรญ sloลพitรก architektonickรก rozhodnutรญ a pล™ed zahรกjenรญm implementace sladรญ jednรกnรญ vลกech zรบฤastnฤ›nรฝch stran projektu.

  • ๐Ÿ“ Zรกkladnรญ definice: Unified Modeling Language (Unified Modeling Language) je standard uznรกvanรฝ normou ISO, kterรฝ pouลพรญvรก obrazovรฉ diagramy k reprezentaci objektovฤ› orientovanรฝch nรกvrhลฏ, struktur a chovรกnรญ softwarovรฝch systรฉmลฏ.
  • ๐Ÿ›๏ธ Dvฤ› kategorie: Diagramy UML se dฤ›lรญ na strukturรกlnรญ diagramy (statickรฝ pohled na komponenty) a behaviorรกlnรญ diagramy (dynamickรฝ pohled na interakce a pracovnรญ postupy).
  • ๐Ÿ—‚๏ธ Strukturรกlnรญ diagramy: Diagramy tล™รญd, objektลฏ, balรญฤkลฏ, komponent a nasazenรญ pล™edstavujรญ statickou architekturu a vztahy mezi prvky systรฉmu.
  • โšก Behaviorรกlnรญ diagramy: Diagramy aktivit, pล™รญpadลฏ uลพitรญ a stavovรฝch automatลฏ zachycujรญ toky systรฉmu, interakce uลพivatelลฏ a pล™echody stavลฏ v ฤase.
  • ๐Ÿ› ๏ธ Nรกstroje a umฤ›lรก inteligence: Nรกstroje jako StarUML, Visio a Lucidchart generovat diagramy UML vizuรกlnฤ›; nรกstroje s umฤ›lou inteligencรญ nynรญ dokรกลพรญ automaticky generovat pล™esnรฉ diagramy z popisลฏ v prostรฉm textu nebo zdrojovรฉho kรณdu.
  • ๐Ÿ“… Historie verzรญ: UML se vyvinul od verze 1.1 (1997) aลพ do verze 2.5.1 (2017), pล™iฤemลพ kaลพdรก verze pล™idรกvala typy diagramลฏ, vylepลกovala sรฉmantiku a zjednoduลกovala specifikaci.

UML diagramy

Softwarovรฉ systรฉmy se rychle stรกvajรญ sloลพitฤ›jลกรญmi a tรฝmy, kterรฉ si nedokรกลพou vizualizovat architekturu, majรญ potรญลพe s komunikacรญ nรกvrhovรฝch rozhodnutรญ. UML poskytuje sdรญlenou vizuรกlnรญ notaci jeลกtฤ› pล™ed napsรกnรญm jakรฉhokoli kรณdu.

Proฤ pouลพรญvat UML? Kompletnรญ historie

Devadesรกtรก lรฉta byla รฉrou rozvoje objektovฤ› orientovanรฝch jazykลฏ jako napล™ C++. Tyto objektovฤ› orientovanรฉ jazyky byly pouลพity k vytvoล™enรญ sloลพitรฝch, ale pลฏsobivรฝch systรฉmลฏ.

Vzhledem k tomu, ลพe vyvinutรฉ systรฉmy byly komplikovanรฉ na pochopenรญ, vedlo to k problรฉmลฏm s nรกvrhem a analรฝzou, kterรฉ se vyskytly po nasazenรญ systรฉmu. Bylo tฤ›ลพkรฉ systรฉm vysvฤ›tlit ostatnรญm.

Jakmile bylo UML zavedeno, bylo provedeno mnoho experimentลฏ a pล™รญstupลฏ, kterรฉ zmฤ›nily hru, pro zjednoduลกenรญ tak obtรญลพnรฝch รบloh analรฝzy systรฉmu.

UML je objektovฤ› orientovanรฝ jednotnรฝ modelovacรญ jazyk. Vynalezli jej brilantnรญ softwarovรญ inลพenรฝล™i Grady Booch, Ivar Jacobson a James Rumbaugh ze softwaru Rational v letech 1994 a 1995. Vรฝvoj byl do roku 1996.

Kaลพdรฝ z vynรกlezcลฏ UML, tedy Grady Booch, Ivar Jacobson a James Rumbaugh, mฤ›l fantastickรฝ nรกpad na nรกvrh jazyka, kterรฝ by zjednoduลกil jeho pouลพรญvรกnรญ.

  • Boochova metoda byla velmi flexibilnรญ pล™i prรกci s designem a konstrukcรญ objektลฏ.
  • Jacobsonova metoda poskytla skvฤ›lรฝ zpลฏsob, jak obejรญt pล™รญpady pouลพitรญ. Mรก takรฉ vรฝkonnรฝ pล™รญstup pro design na vysokรฉ รบrovni.
  • Rumbaughova metoda se ukรกzala jako velmi uลพiteฤnรก pล™i manipulaci s citlivรฝmi systรฉmy.

Later v UML byly zavedeny modely chovรกnรญ a stavovรฉ diagramy, kterรฉ vynalezl David Harel.

UML bylo uznรกno jako standard Object Management Group (OMG) v roce 1997. Object Management Group je zodpovฤ›dnรก za sprรกvu UML od doby, kdy byl pล™ijat jako standard.

V roce 2005 schvรกlila Mezinรกrodnรญ organizace pro normalizaci UML jako normu ISO. Pouลพรญvรก se v rลฏznรฝch prลฏmyslovรฝch odvฤ›tvรญch pro vytvรกล™enรญ objektovฤ› orientovanรฝch modelลฏ.

Nejnovฤ›jลกรญ verze UML je 2.5.1, kterรก byla vydรกna v prosinci 2017.

UML verze

Datum Verze O nรกs
listopad 1997 1.1 UML pล™evzala Object Management Group. Toto byla prvnรญ verze UML.
Bล™ezen 2000 1.3 Byl proveden menลกรญ upgrade stรกvajรญcรญho modelu s vรฝraznรฝmi zmฤ›nami v sรฉmantice, zรกpisya meta-modely UML.
zรกล™รญ 2001 1.4 To bylo obdobรญ velkรฉ aktualizace UML. ล kรกlovalo UML poskytovรกnรญm rลฏznรฝch rozลกรญล™enรญ. V diagramech byla zavedena viditelnost, artefakt, stereotypy.
Bล™ezen 2003 1.5 Do UML byly pล™idรกny funkce, jako jsou procedury, mechanismus toku dat.
Leden 2005 1.4.2 UML byl pล™ijat jako standard ISO.
Srpen 2005 2.0 Do UML byly pล™idรกny novรฉ diagramy, jako je objekt, balรญฤek, naฤasovรกnรญ, interakce. Do diagramลฏ aktivit a sekvencรญ byly pล™idรกny novรฉ funkce. Diagram spoluprรกce byl pล™ejmenovรกn na diagram komunikace. Do stรกvajรญcรญch diagramลฏ bylo zavedeno nฤ›kolik funkcรญ a zmฤ›n.
dubna 2006 2.1 Byly provedeny opravy v UML 2.0.
รบnor 2007 2.1.1 Upgradebyly pล™edstaveny v UML 2.1.
listopad 2007 2.1.2 UML 2.1.1 bylo pล™edefinovรกno.
รบnor 2009 2.2 Chyby UML 2.1.2 byly opraveny.
mลฏลพe 2010 2.3 UML 2.2 byl revidovรกn a byly provedeny drobnรฉ zmฤ›ny v diagramech komponent.
Srpen 2011 2.4.1 Byly provedeny zmฤ›ny tล™รญd, balรญฤkลฏ a stereotypลฏ. UML 2.3 bylo revidovรกno s funkcemi vylepลกenรญ.
ฤervna 2015 2.5 UML 2.4.1 byl revidovรกn s drobnรฝmi zmฤ›nami. UML byl zjednoduลกen oproti pล™edchozรญmu stavu. Byla zavedena rychlรก funkฤnost a generovรกnรญ efektivnฤ›jลกรญch modelลฏ. Zastaralรฉ funkce byly odstranฤ›ny. Modely a ลกablony byly odstranฤ›ny jako pomocnรฉ konstrukty.

Charakteristika UML

  1. Je to zobecnฤ›nรฝ modelovacรญ jazyk.
  2. Liลกรญ se od softwarovรฝch programovacรญch jazykลฏ jako napล™ Python, C, C++, Etc.
  3. Je to obrรกzkovรฝ jazyk, kterรฝ lze pouลพรญt ke generovรกnรญ vรฝkonnรฝch prvkลฏ modelovรกnรญ.
  4. Tรฝkรก se objektovฤ› orientovanรฝch nรกvrhลฏ a analรฝz.
  5. Mรก neomezenรฉ aplikace i mimo softwarovรฝ prลฏmysl. Lze jej pouลพรญt k vizualizaci pracovnรญho postupu tovรกrny.

Konceptuรกlnรญ model

Neลพ zaฤneme s konceptem UML, musรญme pochopit zรกklady konceptuรกlnรญho modelu.

Koncepฤnรญ model se sklรกdรก z rลฏznรฝch pojmลฏ, kterรฉ spolu souvisรญ. Pomรกhรก nรกm to pochopit

  • Jakรฉ jsou pล™edmฤ›ty?
  • Jak probรญhรก interakce pล™i provรกdฤ›nรญ procesu?

V UML je vyลพadovรกn koncepฤnรญ model. Pล™ed samotnรฝm modelovรกnรญm systรฉmu musรญte porozumฤ›t entitรกm a vztahลฏm mezi nimi.

Pro zaฤรกtek s UML jsou vyลพadovรกny nรกsledujรญcรญ objektovฤ› orientovanรฉ koncepty:

  • ObjektJe to entita reรกlnรฉho svฤ›ta. V rรกmci jednoho systรฉmu je k dispozici vรญce objektลฏ. Je to zรกkladnรญ stavebnรญ kรกmen UML.
  • Tล™รญdaTล™รญda nenรญ nic jinรฉho neลพ kontejner, kde se uchovรกvajรญ objekty a jejich vztahy.
  • Abstracvรกnรญ: Je to mechanismus reprezentace entity bez zobrazenรญ podrobnostรญ implementace. Pouลพรญvรก se k vizualizaci chovรกnรญ objektu.
  • Dฤ›dictvรญ: Je to mechanismus rozลกรญล™enรญ existujรญcรญ tล™รญdy za รบฤelem vytvoล™enรญ novรฉ tล™รญdy.
  • Polymorfismus: Je to mechanismus reprezentujรญcรญ objekt, kterรฝ mรก vรญce forem, kterรฉ se pouลพรญvajรญ pro rลฏznรฉ รบฤely.
  • Zapouzdล™enรญ: Je to metoda spojenรญ objektu a dat dohromady jako jeden celek. Zajiลกลฅuje tฤ›snรฉ spojenรญ mezi objektem a daty.

Vรฝลกe uvedenรฉ jsou takรฉ nazรฝvรกny jako zรกkladnรญ stavebnรญ kameny UML.

Co je diagram UML?

UML diagramy jsou vรฝstupem Unified Modeling Language. Je to obrazovรก reprezentace tล™รญd, objektลฏ a vztahลฏ mezi nimi. UML diagram je model, kterรฝ popisuje ฤรกst systรฉmu. Pouลพรญvรก se k definovรกnรญ funkฤnosti nebo designu systรฉmu. Schรฉma musรญ bรฝt jasnรฉ a vรฝstiลพnรฉ, aby jej divรกk snadno pochopil.

UML diagramy jsou rozdฤ›leny do tล™รญ rลฏznรฝch kategoriรญ, napล™.

  • Strukturรกlnรญ diagram
  • Diagram chovรกnรญ
  • Interakฤnรญ diagram

Strukturรกlnรญ diagramy v UML

Strukturรกlnรญ diagramy se pouลพรญvajรญ k reprezentaci statickรฉho pohledu na systรฉm. Pล™edstavuje ฤรกst systรฉmu, kterรก tvoล™รญ strukturu systรฉmu. Strukturรกlnรญ diagram ukazuje rลฏznรฉ objekty v systรฉmu.

Nรญลพe jsou uvedeny rลฏznรฉ strukturรกlnรญ diagramy v UML:

  • Diagram tล™รญd
  • Schรฉma objektu
  • Schรฉma balรญฤku
  • Schรฉma souฤรกsti
  • Schรฉma nasazenรญ

Diagramy chovรกnรญ v UML

Jakรฝkoli systรฉm reรกlnรฉho svฤ›ta mลฏลพe bรฝt reprezentovรกn buฤ ve statickรฉ formฤ›, nebo v dynamickรฉ formฤ›. Systรฉm je povaลพovรกn za รบplnรฝ, pokud je vyjรกdล™en jak statickรฝm, tak dynamickรฝm zpลฏsobem. Diagram chovรกnรญ pล™edstavuje fungovรกnรญ systรฉmu.

UML diagramy, kterรฉ se zabรฝvajรญ statickou ฤรกstรญ systรฉmu, se nazรฝvajรญ strukturรกlnรญ diagramy. Diagramy UML, kterรฉ se zabรฝvajรญ pohyblivรฝmi nebo dynamickรฝmi ฤรกstmi systรฉmu, se nazรฝvajรญ diagramy chovรกnรญ.

Nรญลพe jsou uvedeny rลฏznรฉ diagramy chovรกnรญ v UML:

  • Diagram aktivity
  • Diagram pล™รญpadu pouลพitรญ
  • Schรฉma stรกtnรญho stroje

Interakฤnรญ diagramy v UML

Interakฤnรญ diagram nenรญ nic jinรฉho neลพ podmnoลพina diagramลฏ chovรกnรญ. Pouลพรญvรก se k vizualizaci toku mezi rลฏznรฝmi prvky pล™รญpadu uลพitรญ systรฉmu. Interakฤnรญ diagramy se pouลพรญvajรญ k zobrazenรญ interakce mezi dvฤ›ma entitami a toho, jak v nich proudรญ data.

Nรญลพe jsou uvedeny rลฏznรฉ diagramy interakcรญ v UML:

  • ฤŒasovรฝ diagram
  • Sekvenฤnรญ diagram
  • Diagram spoluprรกce

Podrobnรฉ vysvฤ›tlenรญ vรฝลกe uvedenรฝch diagramลฏ je vysvฤ›tleno v dalลกรญch tutoriรกlech.

Strukturรกlnรญ vs. behaviorรกlnรญ diagramy UML

Nรญลพe uvedenรก tabulka porovnรกvรก dvฤ› kategorie diagramลฏ UML, aby pomohla tรฝmลฏm vybrat ten sprรกvnรฝ typ.

Atribut Strukturรกlnรญ diagramy Behaviorรกlnรญ diagramy
Zobrazit statickรฝ Dynamickรฝ
Soustล™edit Komponenty a jejich vztahy Akce a interakce systรฉmu
Pล™รญklady Tล™รญda, objekt, balรญฤek, komponenta, nasazenรญ Aktivita, Pล™รญpad uลพitรญ, Stavovรฝ automat
Primรกrnรญ pouลพitรญ Archinรกvrh struktury a databรกzรญ Pracovnรญ postup, cesty uลพivatelลฏ, pล™echody mezi stavy
Vytvoล™eno, kdyลพ Definovรกnรญ struktury systรฉmu pล™edem Modelovรกnรญ chovรกnรญ za bฤ›hu a obchodnรญ logiky

Nรกstroje UML

Na trhu je k dispozici mnoho nรกstrojลฏ pro generovรกnรญ diagramลฏ UML. Nฤ›kterรฉ jsou zaloลพeny na poฤรญtaฤi, zatรญmco jinรฉ lze pouลพรญvat online. Nรกsleduje pล™ehlednรฝ seznam nรกstrojลฏ, kterรฉ lze pouลพรญt pro tvorbu modelลฏ UML:

Budeme pouลพรญvat StarUML aplikace pro generovรกnรญ UML diagramลฏ.

Postup instalace: Otevล™ete odkaz: http://staruml.io/download

Podle specifikacรญ vaลกeho PC. Stรกhnฤ›te si libovolnou verzi aplikace. Zde vybereme moลพnost okna.

StarUML Instalace

Jakmile je aplikace staลพena, nainstalujte ji se vลกemi vรฝchozรญmi moลพnostmi. Po instalaci spusลฅte StarUML aplikace ve vaลกem PC.

Uvidรญte nรกsledujรญcรญ okno,

StarUML Instalace

Nynรญ mลฏลพete zaฤรญt vytvรกล™et diagramy UML.

Nejฤastฤ›jลกรญ dotazy

๐Ÿ“Š UML 2.x definuje 14 oficiรกlnรญch typลฏ diagramลฏ rozdฤ›lenรฝch do dvou hlavnรญch skupin: 7 strukturรกlnรญch diagramลฏ (tล™รญda, objekt, komponenta, nasazenรญ, balรญฤek, kompozitnรญ struktura, profil) a 7 behaviorรกlnรญch diagramลฏ (pล™รญpad uลพitรญ, aktivita, stavovรฝ automat, sekvence, komunikace, naฤasovรกnรญ, pล™ehled interakcรญ).

๐Ÿ—„๏ธ Diagramy UML modelujรญ objektovฤ› orientovanรฉ softwarovรฉ systรฉmy a pokrรฝvajรญ strukturu i chovรกnรญ. Diagramy entit a vztahลฏ (ER) se zamฤ›ล™ujรญ vรฝhradnฤ› na schรฉma databรกze a vztahy mezi datovรฝmi entitami. Diagramy tล™รญd UML mohou reprezentovat databรกzovรฉ tabulky, ale nesou dalลกรญ objektovฤ› orientovanou sรฉmantiku, kterou ER diagramy postrรกdajรญ.

๐Ÿข Ano. UML je stรกle ลกiroce pouลพรญvรกn v podnikovรฉ architektuล™e, vestavฤ›nรฝch systรฉmech a regulovanรฝch odvฤ›tvรญch, jako jsou finance a zdravotnictvรญ. Agilnรญ tรฝmy ฤasto pouลพรญvajรญ lehฤรญ podmnoลพiny โ€“ nejฤastฤ›ji diagramy tล™รญd a sekvencรญ โ€“ zatรญmco plnรฉ sady UML zลฏstรกvajรญ bฤ›ลพnรฉ v nรกvrhu rozsรกhlรฝch systรฉmลฏ a vlรกdnรญch projektech.

๐Ÿค– Ano. Modely umฤ›lรฉ inteligence, jako je ChatGPT a GitHub Copilot, dokรกลพรญ generovat PlantUML nebo syntaxi Mermaid z popisลฏ v prostรฉm textu nebo zdrojovรฉho kรณdu. Nรกstroje jako Lucidchart a Visio nynรญ obsahuje vloลพenรฉ asistenty s umฤ›lou inteligencรญ, kteล™รญ bฤ›hem nฤ›kolika sekund vytvรกล™ejรญ diagramy tล™รญd, sekvencรญ a pล™รญpadลฏ uลพitรญ z pokynลฏ v pล™irozenรฉm jazyce.

๐Ÿ› ๏ธ Mezi pล™ednรญ nรกstroje UML s umฤ›lou inteligencรญ patล™รญ Lucidchartgenerรกtor diagramลฏ umฤ›lรฉ inteligence, Microsoft Visio Copilot, Eraser.io a Draw.io s pluginy ChatGPT. PlantUML v kombinaci s jakรฝmkoli velkรฝm jazykovรฝm modelem umoลพลˆuje vรฝvojรกล™ลฏm psรกt diagramy jako kรณd, zatรญmco GitLab a GitHub Copilot mohou zpฤ›tnฤ› analyzovat diagramy tล™รญd z existujรญcรญch repozitรกล™ลฏ.

โญ Nejฤastฤ›ji se pouลพรญvajรญ diagramy tล™รญd a sekvenฤnรญ diagramy. Diagramy tล™รญd modelujรญ statickou strukturu a architekturu kรณdu, zatรญmco sekvenฤnรญ diagramy zachycujรญ, jak objekty interagujรญ v ฤase, coลพ je ฤinรญ oblรญbenรฝmi pro nรกvrhovou dokumentaci v agilnรญch a podnikovรฝch tรฝmech.

๐Ÿ” Diagram tล™รญd definuje plรกn โ€“ tล™รญdy, atributy, metody a vztahy โ€“ systรฉmu. Diagram objektลฏ zobrazuje snรญmek skuteฤnรฝch instancรญ tฤ›chto tล™รญd v urฤitรฉm okamลพiku se skuteฤnรฝmi hodnotami a ilustruje, jak struktura vypadรก za bฤ›hu.

๐ŸŽ“ Ne. UML je vizuรกlnรญ modelovacรญ notace, nikoli programovacรญ jazyk, takลพe se ji zaฤรกteฤnรญci mohou nauฤit i bez znalosti kรณdovรกnรญ. Pochopenรญ zรกkladnรญch objektovฤ› orientovanรฝch konceptลฏ, jako jsou objekty, tล™รญdy a vztahy, staฤรญ k zahรกjenรญ tvorby jednoduchรฝch diagramลฏ UML.

Shrลˆte tento pล™รญspฤ›vek takto: