Die UML wurde 20 Jahre und keiner hat’s gemerkt. Nicht einmal die Object Management Group, die Hüterin der UML, hat das Jubiläum begangen. UML 1.1, die erste unter der Schirmherrschaft der OMG erarbeitete Version wurde 1997 veröffentlicht. Vergeblich habe ich versucht dieses historische Dokument in den Tiefen der Dokumentendatenbank der OMG zu finden. Auf der Seite omg.org/spec/UML/1.1 ist nichts. Auch eine Nachfrage bei den Verantwortlichen ergab nur Achselzucken. Das einzige was ich finden konnte, war Dokument ad/97-08-04 mit dem rätselhaften Titel „UML Semantics and appendices (3 of 10), v1.1“. Die tatsächlich veröffentlichte Spezifikation ist nicht mehr auffindbar. Immerhin wurde letztes Jahr das Video des UML-Tutorials veröffentlicht, das Grady Booch, James Rumbaugh und Ivar Jacobson (jenen „drei Amigos“, die den ersten Entwurf der UML zustande brachten) auf der OOPSLA (Object-Oriented Programming, Systems, Languages, and Applications) 1996 in San Jose, Kalifornien gehalten haben.
In der Zwischenzeit hat die UML große und kleine Änderungen gesehen. Die größte war natürlich der Versionssprung zu 2.0. Von vielen unbemerkt wurden aber auch eine Menge Zusatzspezifikationen veröffentlicht, die die Ausführungssemantik der UML präzisieren:
- fUML (Semantics of a Foundational Subset for Executable UML Models, 2011),
- PSCS (Precise Semantics of UML Composite Structures, 2015)
- PSSM (Precise Semantics of UML State Machines, 2017)
- PST (Precise Semantics of Time for Foundational UML, Request for Proposal 2017)
- PSI (Precise Semantics of Interactions, geplant).
Eine texuelle Notation für Aktivitätsdiagramme wurde mit ALF hinzugefügt (Action Language for Foundational UML, 2013). Ed Seidewitz, der Kopf hinter all diesen Anstrengungen, hat das Ziel unter dem Titel „UML: This time we mean it!“ auf den Punkt gebracht.
2010 wurde dann eine zukunftweisende Initiative von Ivar Jacobson und Steve Cook gestartet: The road ahead for UML: Darin fordern sie, die UML zu vereinfachen und einen ebenso einfachen Erweiterungsmechanismus durch multiple, dynamischer Klassifikation hinzuzufügen. Teile dieser Agenda wurden verwirklicht: Steve Cook hat als Chairman der UML Simplification Taskforce die UML 2.5 (2015, eigentlich vollständige Betaversion 2013) fertig gestellt (der Autor dieses Blogposts war Mitglied der dazugehörigen Finishing Taskforce). Mit SMOF (MOF Support for Semantic Structures, 2013) wurde multiple, dynamische Klassifizierung möglich. Dadurch können Erweiterungen einfach gemeinsam mit der Kern der UML verwendet werden. Eine entsprechende Spezifikation, die die Verwendung dieses Mechanismus für Metamodelle definiert ist über das Request for Proposal Stadium noch nicht hinausgekommen: MEF (Metamodel Extension Facility, Request for proposal 2011). Zwar gibt es seit sechs Jahren eine Initial Submission (ad/12-02-01), der geplante Fertigstellungstermin für die endgültige Version jedoch wurde bisher drei mal verschoben und ist trotzdem schon zwei Jahre überfällig.
Danach scheint die ganze Entwicklung zu einem plötzlichen Halt gekommen zu sein: Seit 2013 hat sich an der UML-Spezifikation nichts mehr geändert. Ein Problem für die davon abhängigen Spezifikationen, wie SysML und MARTE. Beim Treffen der OMG in Brüssel 2017 hörte ich sogar Abends an der Bar „Die UML ist tot“. Ein Spruch der auch auf dem ESE-Kongress im Dezember von den Protagonisten der DSL- (domänenspezifische Sprache) oder der ROOM-Szene (Real Time Object Oriented Modeling) geäußert wurde.
Die SysML 2.0 Arbeitsgruppe hat daher versucht sich von UML unabhängig zu machen. Conrad Bock und Mitstreiter haben einen neuen Ansatz vorgestellt: KerML (Kernel Modeling Language). Hier wird nur ein Kernel einer Modellierungssprache definiert. Alle Erweiterungen werden auf Modellebene in Bibliotheken definiert. Irgendwie kann dadurch kann die Semantik der Erweiterungen im Rahmen des Kernels beschrieben werden. Die Notation muss sich dadurch noch nicht einmal verändern. Das hört sich spannend an. Erstaunt war ich, dass dieser revolutionäre Vorschlag mit wenig Aufsehen auf dem OMG-Treffen im September zur Kenntnis genommen wurde.
Trotz all dieser Revolution wird auch im SysML 2.0 RFP gefordert, dass sich die neue SysML alternativ auch als UML-Profil darstellen lässt.
Ist die UML wirklich tot? Ich glaube nicht. Das Ökosystem der UML ist voller Leben und letzlich ist die SysML auch nichts anderes als eine Unified Modeling Language für Systems Engineering, auch wenn sie sich von ihren Wurzeln lossagen möchte.
Also herzlichen Glückwunsch UML zum zwanzigsten.
Egal in welcher Inkarnation, die vereinheitlichte Modellierungssprache wird uns noch eine Weile begleiten.