Unified Modeling Language

UML, Unified Modeling Language je v softwarovém inženýrství grafický jazyk pro vizualizaci, specifikaci, navrhování a dokumentaci programových systémů. UML nabízí standardní způsob zápisu jak návrhů systému včetně konceptuálních prvků jako jsou business procesy a systémové funkce, tak konkrétních prvků jako jsou příkazy programovacího jazyka, databázová schémata a znovupoužitelné programové komponenty.

UML podporuje objektově orientovaný přístup k analýze, návrhu a popisu programových systémů. UML neobsahuje způsob, jak se má používat, ani neobsahuje metodiku(y), jak analyzovat, specifikovat či navrhovat programové systémy.

Standard UML definuje standardizační skupina Object Management Group (OMG).

Způsoby použití UML 
Kreslení konceptu

Při tomto použití je UML podpůrným nástrojem pro komunikaci mezi vývojáři a pro zaznamenání myšlenek a návrhů. Do diagramů se kreslí pouze věci podstatné pro grafické vyjádření návrhu, čá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í.

Kreslení detailních návrhů

Cílem je zaznamenat kompletní návrh či kompletní realizaci. Při kreslení návrhu by měl analytik obsáhnout všechny prvky tak, aby programátor byl schopen vytvořit program bez velkého přemýšlení nad věcnou oblastí (pro programátora by neměla vzniknout potřeba konzultace s uživatelem).
Při kreslení detailních návrhů se obvykle používají specializované programy (CASE), které jsou schopny sdílet informace mezi jednotlivými modely a kontrolovat konzistenci návrhu. Při dokumentaci programu se často používají nástroje pro generování diagramů z vlastního kódu aplikace.

UML jako programovací jazyk

Při tomto použití vývojář nakreslí UML diagramy, ze kterých se vygeneruje přímo spustitelný kód. Toto vyžaduje specializované nástroje a velmi přesné vyjadřování v UML diagramech. V této souvislosti se velmi často používá pojem Model Driven Architecture (MDA), což je další standard skupiny OMG, který se snaží standardizovat použití UML jako programovacího jazyka.

Metamodel

Tento pohled používají autoři UML a autoři CASE nástrojů - nedívají se na UML jako na diagramy, pro ně je základem UML metamodel (diagramy jsou pouze grafickou reprezentací metamodelu). Při tomto přístupu se často používá pojem model místo pojmu diagram, např. místo diagramu tříd se používá pojem model tříd. Metamodel se popisuje pomocí Meta-Object-Facility (MOF) - abstraktního jazyka pro specifikaci, vytváření a správu metamodelů (další standard OMG). Pro výměnu metamodelů se používá XMI - na XML založený standard (součást standardu UML).

Součásti UML 
Standard ve verzi 2.0 se skládá ze čtyř částí:
 UML 2.0 SuperStructure – popis UML z hlediska uživatele (analytik/programátor). Tato část popisuje jednotlivé diagramy.
 UML 2.0 Infrastructure – metamodel stojící v pozadí za UML, specifikovaný pomocí Meta-Object Facility (MOF).
 UML 2.0 Object Constraint Language (OCL) – jazyk pro specifikaci vstupních a výstupních podmínek, invariantů v jednotlivých diagramech.
 UML 2.0 Diagram Interchange – popis XML struktur pro výměnu konkrétních modelů mezi jednotlivými modelovacími nástroji.

Vedle vlastního standardu existují UML profily – přizpůsobení UML pro jednotlivé oblasti:
 UML Profile for CORBA®
 UML Profile for CORBA Component Model (CCM)
 UML Profile for Enterprise Application Integration (EAI)
 UML Profile for Enterprise Distributed Object Computing (EDOC)
 UML Profile for QoS and Fault Tolerance
 UML Profile for Schedulability, Performance, and Time
 UML Testing Profile

Z UML též začínají vznikat různé dialekty – modelovací jazyky pro určité oblasti, které přebírají část UML, kterou modifikují a doplní o prvky specifické pro konkrétní oblast. Příkladem může být jazyk Systems Modeling Language (SysML), určený pro specifikaci, analýzu, návrh, verifikaci a validaci různých systémů (technické, programové, informační, procesní, zabezpečovací, …).

Též většina metodik pro analýzu a návrh systémů upřednostňuje části z UML a doplňuje je o další prvky.

Diagramy 

Diagramy jsou nejznámější a nejpoužívanější částí standardu. Následuje přehled diagramů v UML 2.0 včetně jejich rozčlenění do skupin:
 strukturní diagramy:
 diagram tříd
 diagram komponent
 composite structure diagram
 diagram nasazení
 diagram balíčků
 diagram objektů, též se nazývá diagram instancí
 diagram profilů
 diagramy chování:
 diagram aktivit
 diagram případů užití
 stavový diagram (UML)
 diagramy interakce:
 sekvenční diagram
 diagram komunikace
 diagram interakcí
 diagram časování

Historie UML 
Vývoj UML začal v roce 1994, kdy Grady Booch a Jim Rumbaugh začali ve firmě Rational Software (nyní součást firmy IBM) spojovat své metodiky – Booch a OMT (Object Modeling Technique). V září 1996 do firmy Rational Software vstoupil Ivar Jacobson se svojí metodologii OMSE (Object-Managed Software Engineering).

Výsledkem jejich práce byl návrh UML (verze 0.9) a metodika RUP (Rational Unified Process). Standardizační organizace OMG v roce 1997 přijala jako standard UML verze 1.1 ve které byly začleněny prvky z dalších metodik (označení UML 1.0 se používá pro návrh, který poslala firma Rational Rose standardizační komisi). Postupně se upřesňovala specifikace a vznikaly další verze 1.2 (1998), 1.3 (1999), 1.4 (2001) a 1.5 (2002). Větší změny byly začleněny do verze 1.3.

Od roku 2001 OMG připravovala verzi 2.0, která přinesla podstatná rozšíření. Text první části (SuperStructure) byl schválen na podzim 2004, ale ještě nebyla dokončena formální úprava dokumentu. UML specifikace verze 2.4.1 byla formálně vydána v srpnu 2011. UML 2.5 byla vydána v říjnu 2012 jako „In progress“ verze a byla oficiálně vydána v červnu 2015. 

Formalní verze 2.5.1 byla přijata v prosinci 2017, stejně jako OCL verze 2.4. Mezinárodní organizací pro normalizaci (ISO) tyto dokumenty přijala jako standard ISO/IEC 19505.

Odkazy

Reference

Externí odkazy 
 
 
 Stránky OMG věnované UML (anglicky)
 Katalog norem OMG 

 
Notace
Softwarové inženýrství
Standardy ISO/IEC
Standardy ISO/IEC podle jména
Reprezentace znalostí