Model Based Systems Engineering (MBSE)
Model Based Systems Engineering (MBSE) geistert schon seit gefühlten Ewigkeiten durch die IT-Schlagzeilen. Es hieß auch schon mal “Computer Aided Software Engineering” (CASE) oder “Design Driven Development”. Allen Begriffen gemeinsam war der Wunsch, das Tippen von Spezifikationen und/oder Quelltexten durch eine mächtige, bevorzugt grafische Notation zu ersetzen. Oder plakativer: Man träumte davon ein paar wenige Diagramme zu erstellen und den Rest würde der Computer schon machen. Ach so, gerade träumen wir ja davon, dass die KI aus unseren wirren Gedanken zu einer Software eine tolle Software zaubert.
Zurück auf den Boden der Tatsachen. Auf dem Weg zu einer guten Software oder einem guten Elektronik-Projekt aus Soft- und Hardware ist es unvermeidlich, sich auf einer abstrakten Ebene Gedanken zum Konzept (Software-Architektur) zu machen. Wer glaubt, diesen Schritt mit agiler Software loszuwerden, ist übrigens komplett auf dem Holzweg. Im Gegenteil, je agiler die Vorgehensweise, desto wichtiger wird es eine gute Software-Architektur zu haben. Schließlich kann man sich schrittweise (iterativ) einem Ziel nur dann nähern, wenn dieses klar genug bekannt ist.
Die Modellierung (egal wie sie gerade heißen mag) hilft vor allem dabei von einer groben Idee zu genau solch einer Software-Architektur zu kommen. Also eben nicht das Klassendiagramm malen und glauben, dass das effektiver wäre als den Quelltext einzutippen. Sondern die Sammlung von abstrakteren Diagrammen, die einem helfen die zu lösenden Aufgabe in kleine, beherrschbare und gut verstandene Teile zu zerlegen.
Wenn man es dann ganz besonders schön macht, gibt es ausgehend von der letzten modellierten Abstraktionsebene noch Codegeneratoren, die einem einen Teil der Tipparbeit abnehmen. Das dürfen aber keine “Ferkel” sein, die schwer zu lesenden Code produzieren oder “Magier” die irgendwo verborgen an Schalten drehen. Ein guter Generator erzeugt Code der von liebevoll von Hand erstelltem Code kaum zu unterscheiden ist. Siehe dazu auch den Artikel “Codegenerierung”.
Der meiner Ansicht nach wichtigste Fortschritt im Bereich von MBSE war die “Universal Modelling Language” (UML). In der 1990er hatten sich dazu die damaligen “Gurus” der grafischen Notation von Software zusammen getan und einen bis heute unangefochtenen Standard geschaffen. Da dei UML nicht nur die grafische Darstellung, sondern auch ein Metamodell mit umfangreicher Spezifikation umfasst, wurde sie auch zur Grundlage einer Vielzahl von Tools. Leider gilt dazu inzwischen der Spruch “Es gibt kein gutes UML-Tool, nur weniger schlechte”.
Bei PI-Data konnten wir intensive Erfahrungen mit Enterprise Architect von SparxSystems und Rhapsody von IBM sammeln. Und ja der Spruch von oben trifft leider zu. Das heißt noch lange nicht, dass man die Finger von UML-Tools lassen sollte, aber Wunder sollte man auch nicht erwarten.
Der Einsatz der UML will gut geplant sein und erfordert einiges an Einarbeitung, ist dann aber das Universal-Mittel um bereits in frühen Projektphasen ein klares Zielbild zu bekommen. Wir durften schon mehrfach Zeuge sein, als die UML-Modellierung Konzept-Fehler frühzeitig aufdeckte und so hohe Kosten in späteren Projektphasen verhindern konnte. Auch das zu verwendende Tool muss passend zu Unternehmen und Aufgabenstellung ausgewählt werden. Wir bieten Ihnen hierzu gerne unsere Expertise an.