Einheitliche Modellierungssprache
Das Einheitliche Modellierungssprache (Uml) ist ein allgemeiner purpose, Entwicklung, Modellierungssprache auf dem Gebiet der Softwareentwicklung Dies soll eine Standardmethode zur Visualisierung des Designs eines Systems bieten.[1]
Die Schaffung von UML wurde ursprünglich durch den Wunsch motiviert, die unterschiedlichen Notationssysteme und -ansätze für das Softwaredesign zu standardisieren. Es wurde bei entwickelt bei Rationale Software 1994–1995, wobei die weitere Entwicklung von ihnen bis 1996 angeführt wurde.[1]
1997 wurde UML als Standard von der übernommen Objektverwaltungsgruppe (OMG) und wird seitdem von dieser Organisation verwaltet. Im Jahr 2005 wurde UML auch von der veröffentlicht Internationale Standardisierungsorganisation (ISO) als zugelassener ISO -Standard.[2] Seitdem wurde der Standard regelmäßig überarbeitet, um die neueste Revision von UML abzudecken.[3] Im Software -Engineering verwenden die meisten Praktiker nicht UML, sondern erstellen informelle handgezogene Diagramme. Diese Diagramme enthalten jedoch häufig Elemente von UML.[4]: 536
Geschichte
Vor UML 1.0
UML hat sich seit der zweiten Hälfte der 90er Jahre weiterentwickelt und hat seine Wurzeln in der Objekt orientierte Programmierung In den späten 1980er und frühen 1990er Jahren entwickelten Methoden. Die Zeitleiste (siehe Bild) zeigt die Höhepunkte der Geschichte objektorientierter Modellierungsmethoden und Notation.
Es basiert ursprünglich auf den Notationen der Booch -Methode, das Objektmodellierungstechnik (OMT) und Objektorientiertes Software-Engineering (Oose), das es in eine einzelne Sprache integriert hat.[5]
Rational Software Corporation gemietet James Rumbaugh aus General Electric 1994 und danach wurde das Unternehmen zur Quelle für zwei der beliebtesten modellorientierten Modellansätze des Tages:[6] Rumbaughs Objektmodellierungstechnik (OMT) und Grady BoochMethode. Sie wurden bald bei ihren Bemühungen unterstützt von Ivar Jacobson, der Schöpfer der Objektorientiertes Software-Engineering (Oose) Methode, die 1995 bei Rational angeschlossen wurde.[1]
Uml 1.x
Unter der technischen Führung dieser drei (Rumbaugh, Jacobson und Booch), ein Konsortium namens The the the UML -Partner wurde 1996 organisiert, um die zu vervollständigen Einheitliche Modellierungssprache (UML) Spezifikation und schlagen Sie sie der Objektverwaltungsgruppe (OMG) zur Standardisierung vor. Die Partnerschaft enthielt auch zusätzliche interessierte Parteien (zum Beispiel HP, Dez, IBM und Microsoft). Der UML Partners 'UML 1.0 Draft wurde dem OMG im Januar 1997 vom Konsortium vorgeschlagen. Im selben Monat gründeten die UML -Partner eine Gruppe, die die genaue Bedeutung von Sprachkonstrukten unter dem Vorsitz von vorsitzenden konnten CRIS Kobryn und von Ed Eykholt verabreicht, um die Spezifikation abzuschließen und sie in andere Standardisierungsbemühungen zu integrieren. Das Ergebnis dieser Arbeit, UML 1.1, wurde im August 1997 dem OMG vorgelegt und im November 1997 vom OMG verabschiedet.[1][7]
Nach der ersten Veröffentlichung wurde eine Task Force gebildet[1] Verbesserung der Sprache, die mehrere kleinere Überarbeitungen veröffentlichte, 1,3, 1,4 und 1,5.[8]
Die von ihm erzeugten Standards (sowie der ursprüngliche Standard) wurden als mehrdeutig und inkonsistent angesehen.[9][10]
Kardinalitätsnotation
Wie bei der Datenbank Chen, Bachman und ISO ER -Diagramme, Klassenmodelle werden so angegeben, dass "Look-Across" verwendet werden. Kardinalitäten, obwohl mehrere Autoren (Merise,[11] Elmasri & Navathe[12] unter anderem[13]) Bevorzugen Sie die gleiche Seite oder "Aussehen" für Rollen und sowohl minimale als auch maximale Kardinalitäten. Jüngste Forscher (Finerer,[14] Dullea et al.[15]) haben gezeigt, dass die von UML- und ER-Diagramme verwendete "Look-Across" -Technik weniger effektiv und weniger kohärent ist, wenn es angewendet wird n-ary Beziehungen der Ordnung streng größer als 2.
Die Feinerin sagt: "Es treten Probleme auf, wenn wir unter der Look-Across-Semantik arbeiten, wie sie für UML-Assoziationen verwendet werden. Hartmann[16] Untersucht diese Situation und zeigt, wie und warum verschiedene Transformationen scheitern. n-ary Assoziationen. "
Uml 2
UML 2.0 Major Revision ersetzte die Version 1.5 im Jahr 2005, die mit einem vergrößerten Konsortium entwickelt wurde, um die Sprache weiter zu verbessern, um neue Erfahrungen bei der Nutzung seiner Funktionen widerzuspiegeln.[17]
Obwohl UML 2.1 nie als formale Spezifikation veröffentlicht wurde, erschienen die Versionen 2.1.1 und 2.1.2 im Jahr 2007, gefolgt von UML 2.2 im Februar 2009. UML 2.3 wurde im Mai 2010 offiziell veröffentlicht.[18] UML 2.4.1 wurde im August 2011 offiziell veröffentlicht.[18] UML 2.5 wurde im Oktober 2012 als "in Arbeit" veröffentlicht und im Juni 2015 offiziell veröffentlicht.[18] Die formelle Version 2.5.1 wurde im Dezember 2017 übernommen.[19]
Die UML 2.x -Spezifikation enthält vier Teile:
- Der Aufbau, der die Notation und die Semantik für Diagramme und ihre Modellelemente definiert
- Die Infrastruktur, die das Kernmetamodell definiert, auf dem der Aufbau basiert
- Das Sprache der Objektbeschränkung (OCL) zur Definition von Regeln für Modellelemente
- Der UML -Diagramm -Austausch, der definiert, wie UML 2 -Diagrammlayouts ausgetauscht werden
Bis UML 2.4.1 waren die neuesten Versionen dieser Standards:[20]
- UML Superstruktur Version 2.4.1
- UML -Infrastruktur Version 2.4.1
- OCL -Version 2.3.1
- UML -Diagramm Interchange Version 1.0.
Seit Version 2.5 wurde die UML -Spezifikation vereinfacht (ohne Überbau und Infrastruktur), und die neuesten Versionen dieser Standards sind jetzt:[21]
- UML -Spezifikation 2.5.1
- OCL Version 2.4
Es wird weiterhin durch die Revisions -Task Force aktualisiert und verbessert, die Probleme mit der Sprache löst.[22]
Entwurf
UML bietet eine Möglichkeit, die architektonischen Blaupausen eines Systems in einem Diagramm zu visualisieren, einschließlich Elementen wie:[5]
- irgendein Aktivitäten (Arbeitsplätze);
- Individuell Komponenten vom System;
- und wie sie mit anderen interagieren können Softwarekomponenten;
- wie das System laufen wird;
- wie Entitäten mit anderen interagieren (Komponenten und Schnittstellen);
- extern Benutzeroberfläche.
Obwohl UML ursprünglich für objektorientierte Entwurfsdokumentation bestimmt, wurde sie auf eine größere Reihe von Entwurfsdokumentationen (wie oben aufgeführt) erweitert.[23] und wurde in vielen Kontexten nützlich befunden.[24]
Softwareentwicklungsmethoden
UML ist keine Entwicklungsmethode für sich;[25] Es wurde jedoch so konzipiert, dass es beispielsweise mit den führenden objektorientierten Softwareentwicklungsmethoden kompatibel ist OMT, Booch -Methode, Objektor und speziell Rupe dass es ursprünglich als verwendet werden sollte, wenn die Arbeit an rationaler Software begann.
Modellieren
Es ist wichtig, zwischen dem UML -Modell und dem Satz von Diagrammen eines Systems zu unterscheiden. Ein Diagramm ist eine teilweise grafische Darstellung des Modells eines Systems. Der Satz von Diagrammen muss das Modell nicht vollständig abdecken und das Löschen eines Diagramms ändert das Modell nicht. Das Modell kann auch eine Dokumentation enthalten, die die Modellelemente und Diagramme (z. B. schriftliche Anwendungsfälle) antreibt.
UML -Diagramme repräsentieren zwei verschiedene Ansichten eines Systemmodells:[26]
- Statisch (oder strukturell) Ansicht: Betont die statische Struktur des Systems unter Verwendung von Objekten, Attributen, Operationen und Beziehungen. Es enthält Klassendiagramme und Verbundstrukturdiagramme.
- Dynamisch (oder Verhalten) Ansicht: Betont das dynamische Verhalten des Systems, indem sie Kooperationen zwischen Objekten und Änderungen an den internen Objektzuständen zeigt. Diese Ansicht beinhaltet Sequenzdiagramme, Aktivitätsdiagramme und Zustandsmaschinendiagramme.
UML -Modelle können zwischen ausgetauscht werden UML -Werkzeuge durch Verwendung der XML -Metadaten Austausch (XMI) Format.
In UML ist eines der wichtigsten Tools für die Verhaltensmodellierung das Anwendungsfallmodell, das durch verursacht wird Oose. Anwendungsfälle sind eine Möglichkeit, die erforderlichen Verwendungen eines Systems anzugeben. In der Regel werden sie verwendet, um die Anforderungen eines Systems zu erfassen, dh, was ein System tun soll.[27]
Diagramme
UML 2 hat viele Arten von Diagrammen, die in zwei Kategorien unterteilt sind.[5] Einige Typen repräsentieren strukturell Informationen und der Rest repräsentieren allgemeine Arten von Verhalten, einschließlich einiger, die unterschiedliche Aspekte von darstellen Interaktionen. Diese Diagramme können hierarchisch kategorisiert werden, wie im folgenden Klassendiagramm gezeigt:[5]
Diese Diagramme können alle Kommentare oder Notizen enthalten, die die Verwendung, Einschränkung oder Absicht erläutern.
Strukturdiagramme
Strukturdiagramme repräsentieren die statischen Aspekte des Systems. Es betont die Dinge, die im Modellieren des Systems vorhanden sein müssen. Da Strukturdiagramme die Struktur darstellen, werden sie ausgiebig bei der Dokumentation der Dokumentation verwendet Softwarearchitektur von Softwaresystemen. Zum Beispiel die Komponentendiagramm Beschreibt, wie ein Softwaresystem in Komponenten aufgeteilt wird und die Abhängigkeiten zwischen diesen Komponenten zeigt.
Verhaltensdiagramme
Verhaltensdiagramme repräsentieren den dynamischen Aspekt des Systems. Es betont, was im Modellieren des Systems passieren muss. Da Verhaltensdiagramme das Verhalten eines Systems veranschaulichen, werden sie ausgiebig verwendet, um die Funktionalität von Softwaresystemen zu beschreiben. Als Beispiel die Aktivitätsdiagramm Beschreibt die geschäftlichen und operativen Schritt-für-Schritt-Aktivitäten der Komponenten in einem System.
Interaktionsdiagramme
Interaktionsdiagramme, eine Untergruppe von Verhaltensdiagrammen, betonen die Kontrollfluss und Daten zu den Dingen im System, das modelliert wird. Zum Beispiel die Sequenzdiagramm zeigt, wie Objekte miteinander über eine Abfolge von Nachrichten kommunizieren.
Metamodelling
Die Objektmanagementgruppe (OMG) hat a entwickelt Metamodelling Architektur, um die UML zu definieren, die als die genannt Meta-Objekt-Einrichtung.[28] MOF ist als vierschichtige Architektur konzipiert, wie im Bild rechts gezeigt. Es liefert oben ein Meta-Meta-Modell, das als M3-Schicht bezeichnet wird. Dieses M3-Modell ist die Sprache, die von der Meta-Objekt-Einrichtung zum Bau von Metamodellen verwendet wird, die als M2-Modelle bezeichnet werden.
Das herausragendste Beispiel für ein Modell der Layer 2 Meta-Objekt-Einrichtung ist das UML-Metamodell, das die UML selbst beschreibt. Diese M2-Modelle beschreiben Elemente der M1-Schicht und damit M1-Modelle. Dies wären zum Beispiel Modelle, die in UML geschrieben wurden. Die letzte Schicht ist die M0-Schicht- oder Datenschicht. Es wird verwendet, um Laufzeitinstanzen des Systems zu beschreiben.[29]
Das Metakodell kann unter Verwendung eines Mechanismus genannt werden Stereotypisierung. Dies wurde als unzureichend/unhaltbar durch kritisiert Brian Henderson-Seller und Cesar Gonzalez-Perez in "Verwendungen und Missbräuchen des Stereotyp-Mechanismus in UML 1.x und 2.0".[30]
Annahme
UML wurde für viele Kontexte vermarktet.[24][31]
Es wurde manchmal als Design behandelt Silberkugel, was zu Problemen führt. UML -Missbrauch umfasst Überbeanspruchung (mit ihm entworfenen Teil des Systems, was unnötig ist) und davon auszugehen, dass Anfänger damit entwerfen können.[32]
Es wird mit vielen als große Sprache angesehen Konstrukte. Einige Leute (einschließlich Jacobson) das Gefühl, dass die Größe von UML das Lernen behindert (und damit verwendet).[33]
Siehe auch
- Anwendungen von UML
- Geschäftsprozessmodell und Notation (BPMN)
- C4 -Modell
- Modellbasierte Tests
- Modellgetriebene Engineering
- Objektorientierte Rollenanalyse und Modellierung
- Systemmodellierungssprache (SYSML)
- Liste der einheitlichen Modellierungs -Sprach -Tools
- Dodaf
- Modaf Meta-Model
Verweise
- ^ a b c d e Einheitlicher Modellierungssprache Benutzerhandbuch, die (2 ed.). Addison-Wesley. 2005. p. 496. ISBN 0321267974. Suchen Sie nach dem Beispielinhalt und suchen Sie nach Historie
- ^ "ISO/IEC 19501: 2005 - Informationstechnologie - Open Distributed Processing - Unified Modeling Language (UML) Version 1.4.3". ISO.org. 1. April 2005. Abgerufen 7. Mai 2015.
- ^ "ISO/IEC 19505-1: 2012 - Informationstechnologie - Objektverwaltungsgruppe Unified Modeling Language (OMG UML) - Teil 1: Infrastruktur". ISO.org. 20. April 2012. Abgerufen 10. April 2014.
- ^ Baltes, Sebastian; Diehl, Stephan (11. November 2014). "Skizzen und Diagramme in der Praxis". Verfahren des 22. ACM Sigsoft International Symposium für Fundamente der Softwareentwicklung. FSE 2014. Hongkong, China: Verband für Computermaschinen: 530–541. Arxiv:1706.09172. doi:10.1145/2635868.2635891. ISBN 978-1-4503-3056-5. S2CID 2436333.
- ^ a b c d "OMG Unified Modeling Language (OMG UML), Superstruktur. Version 2.4.1". Objektverwaltungsgruppe. Abgerufen 9. April 2014.
- ^ Andreas Zendler (1997) Fortgeschrittene Konzepte, Lebenszyklusmodelle und Tools für die Development für beobachtete orientierte Software. p. 122
- ^ "UML-Spezifikation Version 1.1 (OMG-Dokument AD/97-08-11)". Omg.org. Abgerufen 22. September 2011.
- ^ "Uml". Omg.org. Abgerufen 10. April 2014.
- ^ Génova et alia 2004 "Offene Probleme in der industriellen Anwendungsfallmodellierung"
- ^ "Wird UML 2.0 agil oder umständlich sein?" (PDF). Abgerufen 22. September 2011.
- ^ Hubert Tardieu, Arnold Rochfeld und René Colletti La Methode Merise: Principes ET Outils (Taschenbuch - 1983)
- ^ Elmasri, Ramez, B. Shamkant, Navathe, Fundamentals of Database Systems, Third Ed., Addison-Wesley, Menlo Park, CA, USA, 2000.
- ^ ER 2004: 23. Internationale Konferenz über konzeptionelle Modellierung, Shanghai, China, 8.-12. November 2004 Archiviert 27. Mai 2013 bei der Wayback -Maschine
- ^ "Eine formale Behandlung von UML -Klassendiagrammen als effiziente Methode für das Konfigurationsmanagement 2007" (PDF). Abgerufen 22. September 2011.
- ^ "James Dullea, Il-yeol Song, Ioanna Lamprou-Eine Analyse der strukturellen Validität bei der Modellierung der Entitätsbeziehung 2002" (PDF). Abgerufen 22. September 2011.
- ^ ""Argumentation zu Teilnahmebeschränkungen und Chens Einschränkungen" S Hartmann - 2003 " (PDF). Abgerufen 17. August 2013.
- ^ "UML 2.0". Omg.org. Abgerufen 22. September 2011.
- ^ a b c "Uml". Omg.org. Abgerufen 22. September 2011.
- ^ "UML 2.5.1 Spezifikation". Omg.org. Abgerufen 24. Oktober 2018.
- ^ OMG. "OMG formale Spezifikationen (Modellierung und Metadatenabsatz)". Abgerufen 12. Februar 2016.
- ^ OMG. "Über die einheitliche Modellierungssprachspezifikation". Abgerufen 22. Februar 2020.
- ^ "Ausgaben für UML 2.6 Revision Task Force Mailingliste". Omg.org. Abgerufen 10. April 2014.
- ^ Satish Mishra (1997). "Visuelle Modellierung & Unified Modeling Language (UML): Einführung in UML". Rational Software Corporation. Zugriff am 9. November 2008.
- ^ a b "Uml, Erfolgsgeschichten". Abgerufen 9. April 2014.
- ^ John Hunt (2000). Der einheitliche Prozess für Praktiker: objektorientiertes Design, UML und Java. Springer, 2000. ISBN1-85233-275-1. p. 5.door
- ^ Jon Holt Institution of Electrical Engineers (2004). UML für Systemtechnik: Beobachten der Räder Iet, 2004, ISBN0-86341-354-4. p. 58
- ^ Manuel Almendros-Jiménez, Jesús & Iribarne, Luis. (2007). Beschreibung von Anwendungsfallbeziehungen mit Sequenzdiagrammen. Computer. J .. 50. 116-128. 10.1093/comjnl/bxl053.
- ^ Iman Poernomo (2006) "Die metaobjekteinrichtung getippt" in: Verfahren SAC '06 Verfahren des ACM -Symposiums 2006 auf Applied Computing. S. 1845–1849
- ^ "UML 2.4.1 Infrastruktur". Omg.org. 5. August 2011. Abgerufen 10. April 2014.
- ^ B. Henderson-Seller; C. Gonzalez-Perez (2006). "Verwendet und Missbräuche des Stereotyp -Mechanismus in UML 1.x und 2.0". in: Modellgetriebene technische Sprachen und Systeme. Springer Berlin / Heidelberg.
- ^ "UML 2.5: Interessiert es dich überhaupt?". "UML ist wirklich allgegenwärtig"
- ^ "Tod durch UML -Fieber".
- ^ "Ivar Jacobson über UML, MDA und die Zukunft der Methoden".
Weitere Lektüre
- Ambler, Scott William (2004). Die Objektprimer: Agile modellgetriebene Entwicklung mit UML 2. Cambridge University Press. ISBN 0-521-54018-6.
- Chonoles, Michael Jesse; James A. Schardt (2003). Uml 2 für Dummies. Wiley Publishing. ISBN 0-7645-2614-6.
- Fowler, Martin (2004). Uml destilliert: Eine kurze Anleitung zur Standard -Objektmodellierungssprache (3. Aufl.). Addison-Wesley. ISBN 0-321-19368-7.
- Jacobson, Ivar; Grady Booch; James Rumbaugh (1998). Der einheitliche Softwareentwicklungsprozess. Addison Wesley Longman. ISBN 0-201-57169-2.
- Martin, Robert Cecil (2003). UML für Java -Programmierer. Prentice Hall. ISBN 0-13-142848-9.
- Noran, Ovidiu S. "Geschäftsmodellierung: UML vs. idef" (PDF). Abgerufen 28. Dezember 2005.
- Horst Kargl. "Interaktives UML -Metamodel mit zusätzlichen Beispielen".
- Tenker, Magnus; Hans-Erik Eriksson (2000). Geschäftsmodellierung mit UML. John Wiley & Sons. ISBN 0-471-29551-5.
- Douglass, Bruce Powel. "Bruce Douglass: Echtzeit agile Systeme und Softwareentwicklung" (Netz). Abgerufen 1. Januar 2019.
- Douglass, Bruce (2014). Echtzeit UML Workshop 2. Ausgabe. Newnes. ISBN 978-0-471-29551-8.
- Douglass, Bruce (2004). Echtzeit UML 3rd Edition. Newnes. ISBN 978-0321160768.
- Douglass, Bruce (2002). Echtzeit-Designmuster. Addison-Wesley Professional. ISBN 978-0201699562.
- Douglass, Bruce (2009). Echtzeit Agilität. Addison-Wesley Professional. ISBN 978-0321545497.
- Douglass, Bruce (2010). Entwurfsmuster für eingebettete Systeme in C.. Newnes. ISBN 978-1856177078.