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.
GB
Grady Booch
Autor Boochovy metody.
JR
James Rumbaugh
Spoluautor metody OMT – Object Modeling Technique.
IJ
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éž
1
Model
Představuje informace o navrhovaném systému a vztahy mezi nimi.
2
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émuDiagram 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 procesuDiagram 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í cyklusStavový 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á?
KomunikaceSekvenč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ý modelDiagram 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í situaceObjektový 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?
ArchitekturaDiagram 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á?
InfrastrukturaDiagram 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?
OrganizaceDiagram 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.