UML ( anglicky Unified Modeling Language - jednotný modelovací jazyk) je grafický popisný jazyk pro objektové modelování v oblasti vývoje softwaru , pro modelování obchodních procesů , návrh systémů a zobrazování organizačních struktur .
UML je obecný jazyk, je to otevřený standard , který používá grafickou notaci k vytvoření abstraktního modelu systému nazývaného model UML . UML byl vytvořen, aby definoval, vizualizoval, navrhoval a dokumentoval v podstatě softwarové systémy . UML není programovací jazyk , ale generování kódu je možné na základě modelů UML .
UML také umožňuje vývojářům softwaru dohodnout se na grafickém zápisu pro reprezentaci běžných pojmů (jako je třída , komponenta , zobecnění , agregace a chování ) a zaměřit se více na design a architekturu .
Předpoklady pro vznik modelovacího jazyka UML byly identifikovány v souvislosti s prudkým rozvojem objektově orientovaných programovacích jazyků ve druhé polovině 20. století ( Simula 67 , Smalltalk , Objective C , C++ atd.) . Vzhledem k neustálým komplikacím vytvářených softwarových produktů je potřeba při analýze, formulaci požadavků a v procesu návrhu softwarových aplikací zohledňovat stále více nových funkcí jazyků a vývojových nástrojů. Například během krátké doby od roku 1989 do roku 1994 vzrostl počet objektově orientovaných nástrojů z tuctu na více než padesát. Pro mnoho vývojářů však bylo obtížné vybrat modelovací jazyk, který by plně vyhovoval všem jejich potřebám. V důsledku toho se objevila nová generace vývojových metod, mezi nimiž si získala zvláštní oblibu metoda Booch , vytvořená Jacobson Object-Oriented Software Engineering ( OOSE ) a vyvinutá Rambaud Object Modeling Technique ( OMT ). Kromě nich existovaly další dokončené technologie, jako Fusion , Shlaer-Mellor a Coad-Yourdon , nicméně všechny měly nejen výhody, ale i značné nevýhody [1] .
V roce 1994 Grady Booch a James Rumbaugh , pracující pro Rational Software , spojili své síly, aby vytvořili nový objektově orientovaný modelovací jazyk. Za základ jazyka vzali modelovací metody Object-Modeling Technique a Booch . OMT byl zaměřen na analýzu, zatímco Booch byl zaměřen na návrh softwarových systémů. V říjnu 1995 byla vydána předběžná verze 0.8 Unified Method . Na podzim roku 1995 se k Rational připojil Ivar Jakobson , autor objektově orientovaného softwarového inženýrství - OOSE . OOSE poskytuje vynikající schopnosti pro specifikaci obchodních procesů a analýzu požadavků prostřednictvím případů použití . OOSE byl také integrován do jednotné metody.
V této fázi přešla hlavní role v organizaci procesu vývoje UML na konsorcium OMG (Object Management Group) . Návrhářský tým v OMG, který zahrnoval také Butche, Rambeaua a Jacobsona („tři kamarádi“), vydal specifikace UML verze 0.9 a 0.91 v červnu a říjnu 1996 .
Verze | Datum přijetí |
---|---|
1.1 | listopad 1997 [2] |
1.3 | březen 2000 [3] |
1.4 | září 2001 [4] |
1.4.2 | července 2004 [3] |
1.5 | březen 2003 [5] |
2,0 | července 2005 [6] |
2.1 | formálně nepřijato [3] |
2.1.1 | srpen 2007 [7] |
2.1.2 | listopad 2007 [8] |
2.2 | února 2009 [9] |
2.3 | květen 2010 [10] |
2.4 beta 2 | březen 2011 [11] |
2.5 | června 2015 [12] |
2.5.1 | prosince 2017 [13] |
V důsledku rostoucího zájmu o UML se společnosti jako Digital Equipment Corporation , Hewlett-Packard , i-Logix, IntelliCorp, IBM , ICON Computing, MCI Systemhouse, Microsoft , Oracle Corporation , Rational Software připojily k vývoji nových verzí jazyk v rámci konsorcia UML Partners , Texas Instruments a Unisys . Výsledkem spolupráce byla specifikace UML 1.0, která byla vydána v lednu 1997 . V listopadu téhož roku následovala verze 1.1, která obsahovala vylepšení notace a také některá sémantická rozšíření.
Následná vydání UML zahrnovala verze 1.3, 1.4 a 1.5, publikované v červnu 1999 , září 2001 , respektive březnu 2003 .
UML 1.4.2 byl přijat jako mezinárodní standard ISO / IEC 19501:2005 [12] .
Formální specifikace pro UML 2.0 byla zveřejněna v srpnu 2005. Sémantika jazyka byla výrazně zpřesněna a rozšířena tak, aby podporovala metodologii Model Driven Development-MDD . Nejnovější verze UML 2.5 byla zveřejněna v červnu 2015.
UML 2.4.1 byl přijat jako mezinárodní standard ISO / IEC 19505-1, 19505-2 [12] .
V UML se používají následující typy diagramů (pro odstranění nejednoznačnosti je uveden i zápis v angličtině):
Strukturní diagramy:
Diagramy chování:
|
Strukturní schémata:
Diagramy chování:
|
Strukturu diagramů UML 2.3 lze znázornit v diagramu tříd UML:
Diagram tříd (Class diagram) - statický strukturní diagram, který popisuje strukturu systému, ukazuje třídy systému, jejich atributy, metody a závislosti mezi třídami.
Existují různé pohledy na konstrukci diagramů tříd v závislosti na účelu jejich použití:
Komponentní diagram (Component diagram) - statický strukturální diagram, ukazuje rozdělení softwarového systému na strukturální komponenty a vztahy (závislosti) mezi komponentami. Fyzické komponenty mohou být soubory, knihovny, moduly, spustitelné soubory, balíčky atd.
Složený strukturní diagram ( Composite structure diagram) - statický strukturní diagram, který demonstruje vnitřní strukturu tříd a pokud možno interakci prvků (částí) vnitřní struktury třídy.
Poddruhem diagramů složené struktury jsou diagramy spolupráce (diagram spolupráce, představený v UML 2.0), které ukazují role a interakce tříd v rámci spolupráce. Spolupráce je užitečná při modelování návrhových vzorů .
Diagramy složené struktury lze použít ve spojení s diagramy tříd.
Deployment diagram ( deployment diagram) - slouží k modelování pracovních uzlů (hardware, anglicky node ) a artefaktů na nich nasazených. UML 2 nasadil artefakty na uzly , zatímco UML 1 nasadil komponenty na uzly. Mezi artefaktem a logickým prvkem (komponentou), který implementuje, je vytvořena závislost manifestace.
Diagram objektu – zobrazuje úplný nebo částečný snímek simulovaného systému v daném časovém okamžiku. Diagram objektů zobrazuje instance tříd (objekty) systému s aktuálními hodnotami jejich atributů a vazeb mezi objekty.
Diagram balíčku (Package diagram) - strukturální diagram, jehož hlavním obsahem jsou balíčky a vztahy mezi nimi. Mezi různými strukturálními diagramy není žádné striktní oddělení, takže tento název je nabízen pouze pro pohodlí a nemá žádný sémantický význam (balíčky a diagramy balíků se mohou objevit na jiných strukturních diagramech). Balíčkové diagramy slouží především k uspořádání prvků do skupin podle nějakého atributu za účelem zjednodušení struktury a organizace práce s modelem systému.
Diagram aktivity - diagram, který ukazuje rozklad nějaké aktivity na její součásti. Aktivita je specifikace spustitelného chování ve formě koordinovaného sekvenčního a paralelního provádění podřízených prvků — vnořených aktivit a samostatných akcí ( anglicky action ), vzájemně propojených toky, které jdou z výstupů jednoho uzlu na vstupy jiného.
Diagramy činností se používají při modelování podnikových procesů, technologických procesů, sériových a paralelních výpočtů.
Obdobou diagramů aktivit jsou schémata algoritmů podle GOST 19.701-90 a schémata draků .
Automatový diagram (State machine diagram, finite state machine diagram , stavový diagram ) - diagram, který ukazuje konečný automat s jednoduchými stavy , přechody a složenými stavy.
Stavový automat je specifikace posloupnosti stavů, kterými prochází objekt nebo interakce v reakci na události svého života, stejně jako reakce objektu na tyto události. Stavový stroj je připojen ke zdrojovému prvku ( třídě , spolupráci nebo metodě) a slouží k definování chování jeho instancí.
Obdobou automatových diagramů (stavových diagramů) jsou dračí diagramy .
Diagram případů užití nebo diagram případů užití (Use case diagram) je diagram, který ukazuje vztahy, které existují mezi aktéry a případy užití .
Hlavním cílem je poskytnout jednotný nástroj, který umožní zákazníkovi, koncovému uživateli a vývojáři společně diskutovat o funkčnosti a chování systému.
Komunikační a sekvenční diagramy jsou tranzitivní , vyjadřují interakci, ale zobrazují ji různými způsoby as dostatečnou přesností je lze převádět z jednoho na druhý.
Komunikační diagram (Communication diagram, v UML 1.x - diagram spolupráce , diagram spolupráce ) - diagram, který znázorňuje interakce mezi částmi složené struktury nebo rolemi spolupráce. Na rozdíl od sekvenčního diagramu komunikační diagram explicitně ukazuje vztah mezi prvky (objekty) a nepoužívá čas jako samostatnou dimenzi (používá se volací sekvenční čísla).
Sekvenční diagram - diagram, který ukazuje interakce objektů, seřazené podle doby jejich projevu. Zobrazuje zejména objekty účastnící se interakce a sled zpráv, které si vyměňují.
Diagram spolupráce – Tento typ diagramu umožňuje popsat interakce objektů abstrahovat od sekvence předávání zpráv. Tento typ diagramu odráží v kompaktní formě všechny přijaté a vysílané zprávy určitého objektu a typy těchto zpráv.
Protože sekvenční a kolaborační diagramy představují různé pohledy na stejné procesy, Rational Rose vám umožňuje vytvářet kolaborační diagramy ze sekvenčních diagramů a naopak a také tyto diagramy automaticky synchronizuje.
Diagram přehledu interakcí je typ diagramu aktivity, který zahrnuje fragmenty sekvenčního diagramu a konstrukty řídicího toku.
Tento typ diagramu zahrnuje Sequence diagram (diagramy sekvencí akcí) a Collaboration diagram (diagramy spolupráce). Tyto diagramy vám umožňují zvážit interakci objektů ve vytvářeném systému z různých úhlů pohledu.
Časový diagram - alternativní reprezentace sekvenčního diagramu, explicitně zobrazující změny stavu na záchranné lince s daným časovým měřítkem. Může být užitečné v aplikacích v reálném čase.
Navzdory skutečnosti, že UML je poměrně rozšířený a používaný standard, je často kritizován kvůli následujícím nedostatkům:
Unifikovaný Modelovací Jazyk | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||
| |||||||||||
|
Vývoj softwaru | |
---|---|
Proces | |
Koncepty na vysoké úrovni | |
Pokyny |
|
Vývojové metodiky | |
Modelky |
|
Pozoruhodné postavy |
|
ISO | normy|
---|---|
| |
1 až 9999 |
|
10 000 až 19999 |
|
20 000+ | |
Viz také: Seznam článků, jejichž názvy začínají na „ISO“ |