Ganz schön getrieben: Der Unterschied zwischen MBSE und MDSE
Modellierung hat längst Einzug in Systems Engineering gehalten. Doch dafür gibt es verschiedene Begriffe. Insbesondere begegnet man oft MBSE (Model Based Systems Engineering) und MDSE (Model Driven Systems Engineering)? Im Folgenden möchte ich die Unterschiede klären. Und wo wir schon dabei sind: Man kann mit Modellen natürlich auch andere Themen beackern, wie Architektur (MDA) oder Design (MDD). Gut dazu passt übrigens auch der Artikel 18 Dinge, die Sie mit Systemmodellen machen können, sowie das SYSMOD Intensity Model.
Getrieben oder Basiert?
Zu den Unterschieden der verschiedenen Ansätze hat Jordi Cabot in seinem Blog einen lesenswerten Artikel geschrieben. Ich kann ihm nur zustimmen, dass „modellbasiert“ weicher ist als „modellgetrieben.“ Das erste bedeutet, dass Modelle zwar wichtig sind, aber nicht unbedingt Artefakte „erster Klasse“. Bei einem modellgetriebenen Ansatz hingegen sind die Modelle zentrale Artefakte der Entwicklung. Als konkretes Beispiel könnte im ersten Fall das Modell als Dokumentation für die Softwareentwickler herangezogen werden, im zweiten würde jedoch der Code vom Modell generiert werden. Diese Unterscheidung bedeutet auch, dass MDSE eine Untermenge von MBSE ist: Überspitzt könnte ein per Copy & Paste eingefügtes Zustandsdiagramm bereits als MBSE bezeichnet werden.
Engineering, Development und Architecture
Bei der nächsten Frage geht es um die Bedeutung der Buchstaben, die nach „Model Driven“ folgen, also MD(S)E, MDD oder MDE: Engineering, Development und Architecture. Auch da hat Jordi in seinem Artikel klar Stellung zu genommen. Ich sehe ebenfalls Engineering als den übergeordneten Begriff, und in die Kategorie des Engineerings fällt für mich dementsprechend auch das Anforderungsmanagement (und damit die Modellierung von Anforderungen). Engineering deckt für mich die volle Breite des Systems Engineering ab.
Beim Development hingegen geht es um die Ableitung einer Implementierung. Hier wird oft die Codegenerierung als leicht erkennbares Merkmal erwähnt. Dies ist auch der Bereich, in dem UML traditionell eingesetzt wird.
Unter einer Architektur verstehe ich den Rahmen, in den die Teile des zu entwickelnden Systems fallen. Daher ist das Architekturmodell weniger detailliert als das Development-Modell. Jordi hat da eine etwas andere Sicht, da er nur das Verständnis der OMG von MDA betrachtet. Unter dieser Annahme stimme ich Jordi’s Analyse zu. Allerdings sehe ich die Sicht der OMG als nur eine mögliche Interpretation von MDA.
Das Ergebnis ist jedoch das selbe: Man kann die verschiedenen hier erwähnten Ansätze als ineinander verschachtelte Teilmengen verstehen. Dies wurde schön in Jordi’s Blog anhand eines Bildes visualisiert, welches aus der Masterarbeit von David Ameller stammt und im Titelbild zu sehen ist.
Fazit
Ein klares Verständnis der Begriffe ist die Grundlage für jede Diskussion. Dabei dürfen wir nicht davon ausgehen, dass die hier besprochenen Begriffe fest etabliert sind. Es wird sicher noch ein paar Jahre (Jahrzehnte?) dauern, bevor in allen Köpfen das selbe Bild erscheint, wenn der Begriff „MBSE“ fällt.
Bild: David Ameller / Free Stock Textures