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í:
- 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řipravuje verzi 2.0, která přináší podstatná rozšíření.
Text první části (SuperStructure) byl schválen na podzim 2004, ale ještě není dokončena formální úprava dokumentu.[kdy?] Další části specifikace UML jsou připraveny k závěrečnému hlasování.[kdy?]
Zatím poslední vydanou UML specifikací je verze 2.4.1, která byla i přijata jako standard Mezinárodní organizací pro normalizaci (ISO) jako ISO/IEC 19505[1].
Odkazy
Reference
Externí odkazy
- Obrázky, zvuky či videa k tématu Unified Modeling Language na Wikimedia Commons
- Výukový kurs Modelování softwarových projektů v UML ve Wikiverzitě
- Stránky OMG věnované UML (anglicky)