Unifikovaný Modelovací Jazyk - Unified Modeling Language

The Unifikovaný Modelovací Jazyk (UML) je univerzální, vývojový, modelovací jazyk v oblasti softwarové inženýrství který má poskytnout standardní způsob vizualizace návrhu systému.[1]
Vytvoření UML bylo původně motivováno snahou standardizovat různorodé notační systémy a přístupy k návrhu softwaru. Byl vyvinut společností Grady Booch, Ivar Jacobson a James Rumbaugh na Rational Software v letech 1994–1995, s dalším rozvojem vedeným jimi až v roce 1996.[1]
V roce 1997 byla UML přijata jako standard Skupina pro správu objektů (OMG) a od té doby je touto organizací spravována. V roce 2005 UML zveřejnila také Mezinárodní organizace pro normalizaci (ISO) jako schválená norma ISO.[2] Od té doby byl standard pravidelně revidován, aby pokryl nejnovější revizi UML.[3]
Dějiny

Před UML 1.0
UML se vyvíjí od druhé poloviny 90. let a má své kořeny v objektově orientované programování metody vyvinuté na konci 80. a na počátku 90. let. Časová osa (viz obrázek) ukazuje hlavní body historie objektově orientovaných metod modelování a notace.
Původně je založen na zápisech Boochova metoda, technika modelování objektů (OMT) a objektově orientované softwarové inženýrství (OOSE), kterou integroval do jednoho jazyka.[4]
Rational Software Corporation najal James Rumbaugh z General Electric v roce 1994 a poté se společnost stala zdrojem dvou nejpopulárnějších přístupů objektového modelování dne:[5] Rumbaugh technika modelování objektů (OMT) a Grady Booch metoda. V jejich úsilí jim brzy pomohla Ivar Jacobson, tvůrce objektově orientované softwarové inženýrství (OOSE) metoda, která se k nim připojila v Rational v roce 1995.[1]
UML 1.x.
Pod technickým vedením těchto tří (Rumbaugh, Jacobson a Booch) konsorcium s názvem Partneři UML byla uspořádána v roce 1996 za účelem dokončení Unified Modeling Language (UML) specifikace a navrhnout ji ke standardizaci skupině správy objektů (OMG). Partnerství obsahovalo také další zúčastněné strany (například HP, DEC, IBM a Microsoft ). Konsorcium navrhlo OMG v lednu 1997 návrh UML Partners UML 1.0. Ve stejném měsíci UML Partners vytvořili skupinu, jejímž cílem je definovat přesný význam jazykových konstrukcí, kterému předsedá Cris Kobryn a spravuje Ed Eykholt, aby dokončil specifikaci a integroval ji s dalšími snahami o standardizaci. Výsledek této práce, UML 1.1, byl předložen OMG v srpnu 1997 a přijat OMG v listopadu 1997.[1][6]
Po prvním vydání byla vytvořena pracovní skupina[1] vylepšit jazyk, který vydal několik menších revizí, 1.3, 1.4 a 1.5.[7]
Standardy, které vytvořil (stejně jako původní standard), byly označeny jako nejednoznačné a nekonzistentní.[8][9]
Kardinalita notace
Stejně jako u databáze Chen, Bachman a ISO ER diagramy, modely tříd jsou specifikovány pro použití „look-across“ kardinality, i když několik autorů (Merise,[10] Elmasri a Navathe[11] mimo jiné[12]) upřednostňují stejnou stranu nebo „hledají zde“ role a minimální i maximální kardinality. Nedávní vědci (Feinerer,[13] Dullea a kol.[14]) ukázaly, že technika „look-across“ používaná diagramy UML a ER je méně účinná a méně koherentní n-jednotné vztahy řádu přísně větší než 2.
Feinerer říká: „Problémy vznikají, pokud pracujeme pod sémantikou look-across, jak se používá pro asociace UML. Hartmann[15] zkoumá tuto situaci a ukazuje, jak a proč selhávají různé transformace. “a:„ Jak uvidíme na několika následujících stránkách, pohledová interpretace přináší několik obtíží, které brání rozšíření jednoduchých mechanismů z binárních na n-ary sdružení. “
UML 2
Hlavní revize UML 2.0 nahradila verzi 1.5 v roce 2005, která byla vyvinuta s rozšířeným konsorciem, aby se jazyk dále vylepšil tak, aby odrážel nové zkušenosti s používáním jeho funkcí.[16]
Ačkoli UML 2.1 nikdy nebyl vydán jako formální specifikace, verze 2.1.1 a 2.1.2 se objevily v roce 2007, následované UML 2.2 v únoru 2009. UML 2.3 byl formálně vydán v květnu 2010.[17] UML 2.4.1 byl oficiálně vydán v srpnu 2011.[17] UML 2.5 byl vydán v říjnu 2012 jako verze „Probíhá“ a oficiálně byl vydán v červnu 2015.[17] Formální verze 2.5.1 byla přijata v prosinci 2017.[18]
Specifikace UML 2.x má čtyři části:
- Nadstavba, která definuje notaci a sémantiku pro diagramy a jejich prvky modelu
- Infrastruktura, která definuje základní metamodel, na kterém je nadstavba založena
- The Jazyk omezení objektu (OCL) pro definování pravidel pro prvky modelu
- Výměna diagramu UML, která definuje, jak se vyměňují rozložení diagramu UML 2
Do UML 2.4.1 byly nejnovější verze těchto standardů:[19]
- UML Superstructure verze 2.4.1
- UML Infrastructure verze 2.4.1
- OCL verze 2.3.1
- UML Diagram Interchange verze 1.0.
Od verze 2.5 byla specifikace UML zjednodušena (bez nadstavby a infrastruktury) a nejnovější verze těchto standardů jsou nyní:[20]
- Specifikace UML 2.5.1
- OCL verze 2.4
Stále je aktualizuje a vylepšuje pracovní skupina pro revize, která řeší jakékoli problémy s jazykem.[21]
Design
UML nabízí způsob, jak vizualizovat architektonické plány systému v diagramu, včetně prvků, jako jsou:[4]
- žádný činnosti (pracovní místa);
- individuální komponenty systému;
- a jak mohou komunikovat s ostatními softwarové komponenty;
- jak bude systém fungovat;
- jak entity interagují s ostatními (komponenty a rozhraní);
- externí uživatelské rozhraní.
Ačkoli byl původně určen pro objektově orientovanou konstrukční dokumentaci, UML byl rozšířen na větší sadu konstrukční dokumentace (jak je uvedeno výše),[22] a bylo shledáno užitečným v mnoha kontextech.[23]
Metody vývoje softwaru
UML není sama o sobě vývojovou metodou;[24] byl však navržen tak, aby byl kompatibilní například s předními metodami vývoje objektově orientovaného softwaru své doby OMT, Boochova metoda, Objektivní a hlavně RUP že to bylo původně zamýšleno pro použití při zahájení prací v Rational Software.
Modelování
Je důležité rozlišovat mezi modelem UML a sadou diagramů systému. Diagram je částečné grafické znázornění modelu systému. Sada diagramů nemusí úplně pokrýt model a odstranění diagramu model nezmění. Model může také obsahovat dokumentaci, která řídí prvky modelu a diagramy (například písemné případy použití).
Diagramy UML představují dva různé pohledy na model systému:[25]
- Statické (nebo strukturální) pohled: zdůrazňuje statickou strukturu systému pomocí objektů, atributů, operací a vztahů. To zahrnuje třídní diagramy a složené strukturní diagramy.
- Dynamický (nebo behaviorální) pohled: zdůrazňuje dynamické chování systému tím, že ukazuje spolupráci mezi objekty a změny vnitřních stavů objektů. Tento pohled zahrnuje sekvenční diagramy, diagramy činnosti a stavové automatové diagramy.
Mezi modely UML lze vyměňovat UML nástroje pomocí Výměna metadat XML (XMI).
V UML je jedním z klíčových nástrojů pro modelování chování model případu použití způsobený OOSE. Případy použití jsou způsob, jak určit požadovaná použití systému. Obvykle se používají k zachycení požadavků systému, tj. Toho, co má systém dělat.[26]
Diagramy
Typy diagramů UML |
---|
Strukturální UML diagramy |
Behaviorální diagramy UML |
UML 2 má mnoho typů diagramů, které jsou rozděleny do dvou kategorií.[4] Některé typy představují strukturální informace a zbytek představují obecné typy chování, včetně několika, které představují různé aspekty interakce. Tyto diagramy lze hierarchicky kategorizovat, jak je znázorněno v následujícím diagramu tříd: These diagrams can be categorized hierarchically as shown in the following class diagram:[4]

Všechny tyto diagramy mohou obsahovat komentáře nebo poznámky vysvětlující použití, omezení nebo záměr.
Strukturní diagramy
Strukturní diagramy zdůrazňují věci, které musí být přítomny v modelovaném systému. Vzhledem k tomu, že strukturní diagramy představují strukturu, jsou značně používány při dokumentaci softwarová architektura softwarových systémů. Například komponentní diagram popisuje, jak je softwarový systém rozdělen na komponenty, a ukazuje závislosti mezi těmito komponentami.
Diagramy chování
Diagramy chování zdůrazňují, co se musí stát v modelovaném systému. Vzhledem k tomu, že diagramy chování ilustrují chování systému, používají se značně k popisu funkcí softwarových systémů. Jako příklad lze uvést diagram činnosti popisuje obchodní a provozní krok za krokem činnosti komponent v systému.
Interakční diagramy
Interakční diagramy, podmnožina diagramů chování, zdůrazňují tok kontroly a data mezi věcmi v modelovaném systému. Například sekvenční diagram ukazuje, jak objekty vzájemně komunikují, pokud jde o posloupnost zpráv.
Metamodel

Skupina pro správu objektů (OMG) vyvinula a metamodelování architektura definovat UML, tzv Zařízení s metaobjekty.[27] MOF je navržen jako čtyřvrstvá architektura, jak je znázorněno na obrázku vpravo. Poskytuje meta-meta model nahoře, který se nazývá vrstva M3. Tento model M3 je jazyk používaný společností Meta-Object Facility k vytváření metamodelů, tzv. Modely M2.
Nejvýznamnějším příkladem modelu zařízení pro metaobjekty vrstvy 2 je metamodel UML, který popisuje samotný UML. Tyto modely M2 popisují prvky vrstvy M1, a tedy modely M1. Jednalo by se například o modely napsané v UML. Poslední vrstvou je vrstva M0 nebo datová vrstva. Používá se k popisu běhových instancí systému.[28]
Meta-model lze rozšířit pomocí tzv. Mechanismu stereotypizace. Toto bylo kritizováno jako nedostatečné / neudržitelné Brian Henderson - prodejci a Cesar Gonzalez-Perez v „Využití a zneužití stereotypního mechanismu v UML 1.xa 2.0“.[29]
Přijetí
UML byl prodáván v mnoha kontextech.[23][30]
Někdy to bylo považováno za design stříbrná kulka, což vede k problémům. Zneužití UML zahrnuje nadužívání (navrhování všech částí systému s ním, což je zbytečné) a za předpokladu, že s ním mohou navrhovat nováčci.[31]
Je považován za velký jazyk s mnoha konstrukty. Někteří lidé (včetně Jacobson ) cítíte, že velikost UML brání učení (a tedy i jeho používání).[32]
Viz také
- Aplikace UML
- Model a zápis obchodního procesu (BPMN)
- Model C4
- Testování na základě modelu
- Modelově řízené inženýrství
- Objektově orientovaná analýza a modelování rolí
- Systémový modelovací jazyk (SysML)
- Seznam nástrojů Unified Modeling Language
Reference
- ^ A b C d E Uživatelská příručka Unified Modeling Language, The (2. vyd.). Addison-Wesley. 2005. s. 496. ISBN 0321267974., Podívejte se na ukázkový obsah, podívejte se na historii
- ^ „ISO / IEC 19501: 2005 - Informační technologie - Otevřené distribuované zpracování - Unified Modeling Language (UML) verze 1.4.2“. Iso.org. 1. dubna 2005. Citováno 7. května 2015.
- ^ „ISO / IEC 19505-1: 2012 - Informační technologie - Object Management Group Unified Modeling Language (OMG UML) - Část 1: Infrastruktura“. Iso.org. 20. dubna 2012. Citováno 10. dubna 2014.
- ^ A b C d „OMG Unified Modeling Language (OMG UML), Superstructure. Verze 2.4.1“. Skupina pro správu objektů. Citováno 9. dubna 2014.
- ^ Andreas Zendler (1997) Pokročilé koncepty, modely životního cyklu a nástroje pro objektově orientovaný vývoj softwaru. p. 122
- ^ „Specifikace UML verze 1.1 (OMG document ad / 97-08-11)“. Omg.org. Citováno 22. září 2011.
- ^ „UML“. Omg.org. Citováno 10. dubna 2014.
- ^ Génova a další 2004 „Otevřené problémy v modelování případů průmyslového využití“
- ^ „Bude UML 2.0 hbitý nebo nepříjemný?“ (PDF). Citováno 22. září 2011.
- ^ Hubert Tardieu, Arnold Rochfeld a René Colletti La methode MERISE: Principes et outils (brožovaný výtisk - 1983)
- ^ Elmasri, Ramez, B. Shamkant, Navathe, Fundamentals of Database Systems, třetí vydání, Addison-Wesley, Menlo Park, CA, USA, 2000.
- ^ ER 2004: 23. mezinárodní konference o koncepčním modelování, Šanghaj, Čína, 8. – 12. Listopadu 2004 Archivováno 27. května 2013 v Wayback Machine
- ^ „Formální zpracování diagramů tříd UML jako efektivní metoda pro správu konfigurace 2007“ (PDF). Citováno 22. září 2011.
- ^ „James Dullea, Il-Yeol Song, Ioanna Lamprou - Analýza strukturální platnosti v modelování vztahů mezi entitami 2002“ (PDF). Citováno 22. září 2011.
- ^ ""Odůvodnění omezení účasti a omezení Chen „S Hartmann - 2003“ (PDF). Citováno 17. srpna 2013.
- ^ „UML 2.0“. Omg.org. Citováno 22. září 2011.
- ^ A b C „UML“. Omg.org. Citováno 22. září 2011.
- ^ "Specifikace UML 2.5.1". Omg.org. Citováno 24. října 2018.
- ^ PRO BOHA. „Formální specifikace OMG (odstavec o modelování a metadatech)“. Citováno 12. února 2016.
- ^ PRO BOHA. „o jednotné specifikaci modelovacího jazyka“. Citováno 22. února 2020.
- ^ "Problémy s úkolem revize UML 2.6 Force Force mailing list". Omg.org. Citováno 10. dubna 2014.
- ^ Satish Mishra (1997). „Visual Modeling & Unified Modeling Language (UML): Introduction to UML“. Rational Software Corporation. Přístupné 9. listopadu 2008.
- ^ A b „UML, příběhy o úspěchu“. Citováno 9. dubna 2014.
- ^ John Hunt (2000). Jednotný proces pro odborníky: Objektově orientovaný design, UML a Java. Springer, 2000. ISBN 1-85233-275-1. p. 5. dveře
- ^ Jon Holt Institution of Electrical Engineers (2004). UML pro systémové inženýrství: Pozorování kol IET, 2004, ISBN 0-86341-354-4. p. 58
- ^ Manuel Almendros-Jiménez, Jesús & Iribarne, Luis. (2007). Popis relací případu použití se sekvenčními diagramy. Comput. J .. 50. 116-128. 10.1093 / comjnl / bxl053.
- ^ Iman Poernomo (2006) "Typ metaobjektu " v: Proceeding SAC '06 Proceedings of the 2006 ACM symposium on Applied computing. 1845–1849
- ^ „UML 2.4.1 Infrastructure“. Omg.org. 5. srpna 2011. Citováno 10. dubna 2014.
- ^ B. Henderson-Sellers; C. Gonzalez-Perez (2006). "Použití a zneužití stereotypního mechanismu v UML 1.xa 2.0". v: Modelem řízené inženýrské jazyky a systémy. Springer Berlin / Heidelberg.
- ^ „UML 2.5: Je ti to vůbec jedno?“. „UML je skutečně všudypřítomný“
- ^ „Death by UML Fever“.
- ^ „Ivar Jacobson o UML, MDA a budoucnosti metodik“.
- Tento článek je založen na materiálu převzatém z Zdarma on-line slovník výpočetní techniky před 1. listopadem 2008 a začleněno pod "licencování" podmínek GFDL, verze 1.3 nebo novější.
Další čtení
- Ambler, Scott William (2004). Object Primer: Agilní model řízený vývoj s UML 2. Cambridge University Press. ISBN 0-521-54018-6.
- Chonoles, Michael Jesse; James A. Schardt (2003). UML 2 pro figuríny. Wiley Publishing. ISBN 0-7645-2614-6.
- Fowler, Martin (2004). UML destilovaný: Stručný průvodce standardním jazykem modelování objektů (3. vyd.). Addison-Wesley. ISBN 0-321-19368-7.
- Jacobson, Ivar; Grady Booch; James Rumbaugh (1998). Proces vývoje sjednoceného softwaru. Addison Wesley Longman. ISBN 0-201-57169-2.
- Martin, Robert Cecil (2003). UML pro programátory Java. Prentice Hall. ISBN 0-13-142848-9.
- Noran, Ovidiu S. „Business Modeling: UML vs. IDEF“ (PDF). Citováno 28. prosince 2005.
- Horst Kargl. „Interaktivní metamodel UML s dalšími příklady“.
- Penker, Magnus; Hans-Erik Eriksson (2000). Obchodní modelování s UML. John Wiley & Sons. ISBN 0-471-29551-5.
- Douglass, Bruce Powel. „Bruce Douglass: Agilní systémy a vývoj softwaru v reálném čase“ (web). Citováno 1. ledna 2019.
- Douglass, Bruce (2014). Real-Time UML Workshop 2. vydání. Noví. ISBN 978-0-471-29551-8.
- Douglass, Bruce (2004). Real-Time UML 3. vydání. Noví. ISBN 978-0321160768.
- Douglass, Bruce (2002). Návrhové vzory v reálném čase. Addison-Wesley Professional. ISBN 978-0201699562.
- Douglass, Bruce (2009). Hbitost v reálném čase. Addison-Wesley Professional. ISBN 978-0321545497.
- Douglass, Bruce (2010). Návrhové vzory pro vestavěné systémy v jazyce C.. Noví. ISBN 978-1856177078.