Softwarová analýza

Co je UML

UML je zkratka pro Unified Modeling Language, česky sjednocený modelovací jazyk. Používá se k vizuálnímu popisu softwarových systémů, jejich struktury, chování a vzájemné komunikace jednotlivých částí.

Zjednodušeně pomáhá převést myšlenku nebo návrh systému do diagramu, kterému mohou rozumět IT analytici, architekti, vývojáři, testeři i zadavatelé.

UML jako technický výkres systému

UML diagram lze přirovnat k technickému výkresu. Stejně jako stavební plán ukazuje důležité části budovy, UML diagram zachycuje vybranou část softwarového systému.

Diagram může například ukázat:

  • jaké funkce systém poskytuje uživatelům,
  • z jakých tříd nebo komponent se skládá,
  • jak spolu jednotlivé části komunikují,
  • jak probíhá určitý proces,
  • ve kterých stavech se může objekt nacházet,
  • na jakém prostředí bude aplikace provozována.

Co UML není

UML není programovací jazyk ani metodika vývoje software. Nenahrazuje zdrojový kód a neurčuje, jak má tým řídit projekt. Poskytuje společný vizuální jazyk pro návrh, vysvětlování a dokumentaci systému.

Kdo stojí za vznikem UML

UML vzniklo v první polovině devadesátých let jako reakce na množství různých metod a notací používaných při objektově orientované analýze a návrhu.

Grady Booch

Autor Boochovy metody.

James Rumbaugh

Spoluautor metody OMT – Object Modeling Technique.

Ivar Jacobson

Autor metody OOSE a konceptu případů užití.

Three Amigos

Tato trojice spojila osvědčené principy existujících přístupů do jednoho společného modelovacího jazyka. Na jeho dalším vývoji spolupracovaly také technologické společnosti a další odborníci.

Kdo UML standardizuje

Object Management Group

Mezinárodní standard

Za standardizací UML stojí Object Management Group (OMG), mezinárodní neziskové technologické konsorcium spravující standardy pro software, systémové inženýrství a podnikové procesy.

Oficiální specifikace je rozsáhlá. Pro běžnou práci IT analytika je důležitější rozumět významu prvků, dodržovat základní pravidla notace a vytvářet srozumitelné diagramy.

1997
OMG přijala UML jako standard.
UML 2.0
Rozšíření možností a zpřesnění jazyka.
ISO/IEC 19505
Mezinárodní standardizace UML 2.

Proč je UML důležité

Při vývoji software spolupracují lidé s rozdílnými pohledy na systém. Zadavatel řeší požadované funkce, analytik chování systému, architekt celkovou koncepci a vývojář technickou implementaci. UML pomáhá tyto pohledy propojit.

Dobře vytvořený diagram může:

  • zpřesnit požadavky ještě před zahájením vývoje,
  • odhalit chybějící vazby nebo nejasnosti,
  • usnadnit komunikaci mezi členy týmu,
  • vysvětlit složitější proces přehledněji než dlouhý text,
  • zachytit důležitá architektonická rozhodnutí,
  • sloužit jako podklad pro implementaci a testování,
  • zjednodušit pozdější údržbu systému,
  • pomoci novým členům týmu rychleji pochopit řešení.
Důležitá je přiměřená úroveň detailu. Hodnota UML nespočívá v množství diagramů. Příliš podrobný nebo neaktuální diagram může být naopak matoucí.

Model a diagram nejsou úplně totéž

Model

Představuje informace o navrhovaném systému a vztahy mezi nimi.

Diagram

Je konkrétní grafický pohled na vybranou část modelu.

Jeden systém proto může obsahovat více diagramů a každý z nich odpovídá na jinou otázku. Diagram tříd ukazuje statickou strukturu systému, zatímco sekvenční diagram popisuje komunikaci mezi jeho částmi v určitém scénáři.

Není potřeba zachytit celý systém v jednom rozsáhlém diagramu. V praxi bývá užitečnější vytvořit několik menších a dobře čitelných diagramů.

Dva základní pohledy na systém

UML diagramy můžeme rozdělit do dvou hlavních skupin:

1

Strukturální diagramy

  • Popisují, z čeho se systém skládá.
  • Zachycují části systému a jejich vztahy.
  • Představují jeho statický pohled.
2

Behaviorální diagramy

  • Popisují, jak se systém chová.
  • Zachycují procesy, komunikaci a změny stavů.
  • Představují jeho dynamický pohled.
Strukturální pohled připomíná mapu částí systému. Behaviorální pohled zachycuje dění v systému. Oba se doplňují: jeden ukáže existující komponenty, druhý vysvětlí jejich komunikaci v konkrétním scénáři.

Hlavní behaviorální diagramy

Behaviorální diagramy zachycují, co systém dělá, jak reaguje na události a jak spolu jeho části komunikují.

Funkce systému

Diagram případů užití

  • Představuje hlavní funkce systému.
  • Zobrazuje pohled uživatelů a okolních systémů.

Odpovídá na otázkuCo mohou jednotliví uživatelé se systémem dělat?

Průběh procesu

Diagram aktivit

  • Popisuje proces nebo pracovní postup.
  • Zachycuje kroky, rozhodování, větvení a paralelní činnosti.

Odpovídá na otázkuJak proces postupuje od začátku do konce?

Životní cyklus

Stavový diagram

  • Popisuje možné stavy objektu.
  • Zobrazuje události způsobující změnu stavu.

Odpovídá na otázkuV jakých stavech se může objekt nacházet a co změnu vyvolá?

Komunikace

Sekvenční diagram

  • Zachycuje komunikaci v časovém pořadí.
  • Zobrazuje účastníky a pořadí zpráv nebo volání.

Odpovídá na otázkuKdo s kým komunikuje a v jakém pořadí?

Další interakční diagramy
  • komunikační diagram
  • diagram přehledu interakcí
  • časovací diagram

V běžné analytické praxi se velmi často setkáme především se sekvenčním diagramem.

Hlavní strukturální diagramy

Strukturální diagramy zachycují části systému, jejich vlastnosti, rozhraní, umístění a vzájemné vztahy.

Datový model

Diagram tříd

  • Zobrazuje třídy, vlastnosti a operace.
  • Znázorňuje vztahy mezi třídami.
  • Slouží pro doménovou analýzu i návrh implementace.

Odpovídá na otázkuJaké hlavní objekty v systému existují a jak spolu souvisejí?

Konkrétní situace

Objektový diagram

  • Zachycuje konkrétní instance tříd.
  • Představuje stav části systému v určitém okamžiku.

Odpovídá na otázkuJak může vypadat konkrétní sada objektů za běhu systému?

Architektura

Diagram komponent

  • Zobrazuje komponenty, moduly a služby.
  • Znázorňuje jejich závislosti a rozhraní.

Odpovídá na otázkuZ jakých technologických částí se řešení skládá?

Infrastruktura

Diagram nasazení

  • Zobrazuje servery, zařízení, kontejnery a další uzly.
  • Ukazuje fyzické rozmístění částí systému.

Odpovídá na otázkuKde budou jednotlivé části systému spuštěny?

Organizace

Diagram balíčků

  • Seskupuje prvky do logických celků.
  • Zobrazuje závislosti mezi balíčky.

Odpovídá na otázkuJak je systém rozdělen do oblastí, vrstev nebo modulů?

Méně často používané strukturální diagramy
  • diagram složené struktury
  • profilový diagram

Je nutné používat všechny UML diagramy?

Krátká odpověďNe, není.

Pro projekt je vhodné vybrat pouze diagramy, které přinášejí skutečnou hodnotu. Rozsah závisí na fázi projektu, složitosti systému a cílovém čtenáři.

  • 1Menší aplikace: několik případů užití, diagram tříd a jeden nebo dva sekvenční diagramy.
  • 2Distribuovaný systém: také diagramy komponent a nasazení.
  • 3Konceptuální úroveň: hlavní myšlenka řešení bez implementačních podrobností.
  • 4Detailní úroveň: informace potřebné pro implementaci a testování.

UML by mělo pomáhat komunikaci. Nemělo by se stát administrativní povinností ani cílem samo o sobě.

Shrnutí

  • UML je standardizovaný vizuální jazyk pro modelování software a dalších systémů.
  • Zachycuje strukturu systému, jeho chování a komunikaci jednotlivých částí.
  • Vytváří společný způsob komunikace mezi lidmi zapojenými do vývoje.
  • Není potřeba znát všechny diagramy a symboly zpaměti.
  • Důležité je vybrat správný typ diagramu a předat informace srozumitelně.

Dobře vytvořený UML diagram dokáže složitější část systému vysvětlit rychleji a přesněji než několik stran textové dokumentace.