Systems Engineering Trends

Jede Woche Neuigkeiten aus der Welt des Systems Engineering

OMGWerkzeuge

SysML v2 Referenzimplementierung: Ein Erfahrungsbericht

Es gibt eine SysML v2 Referenzimplementierung: Die musste ich doch gleich mal ausprobieren, denn mir gehen tausend Fragen durch den Kopf: Was ist der Nutzen? Wie gut funktioniert sie? Wie schnell bekommen wir Ergebnisse? Hier ist mein Erfahrungsbericht.

Zu SysML v2 hatte ich hier ja schon mehrfach geschrieben. Für Leser, die sich gerade erst mit SysML auseinandersetzen, könnte dieses Video zur SysML-Simluation interessant sein. Für Umsteiger von Version 1 gibt es eine FAQ für die Version 2.

Nutzen der SysML v2 Referenzimplementierung

Abgesehen davon, ein Vorreiter zu sein: Was kann die SysML v2 Referenzimplementierung, was ist der Nutzen? Hier müssen wir zwischen der Eclipse-basierten Benutzeroberfläche und der dazugehörigen Engine unterscheiden.

Die Benutzeroberfläche hat folgenden Nutzen:

  • Die Möglichkeit, SysML-Modelle mit der Textnotation zu erstellen.
  • Die Modelle mit PlantUML in Echtzeit visualisieren
  • Das Modell verifizieren, wobei Fehler per Syntax-Highlighting identifiziert werden
  • Den Modellbaum inspizieren

Darüber hinaus könnte die Engine, auf welcher die Benutzeroberfläche basiert, für viele weitere Aktivitäten verwendet werden. Zum Beispiel:

  • Modelltransformation von und zu SysML v2: Je nach Anwendungsfall reichen die Möglichkeiten von Excel-Tabellen über verwandte Modellierungssprachen (bspw UML) bis zu formalen Modellen.
  • Analyse des Modells
  • Verbauen in eigenen Werkzeugen, die SysML v2 in irgendeiner Form unterstützen oder verwerten.

Für manche dieser Anwendungsfälle könnte die SysML v2 API besser geeignet sein, für die es ebenfalls eine Referenzimplementierung gibt.

Installation der SysML v2 Referenzimplementierung

Die Referenzimplementierung basiert auf Eclipse. Damit kann sie auf allen üblichen Betriebssystemen installiert werden. Die Installationanleitung ist gut verständlich, erfordert aber doch etwas Geduld und Erfahrung . Ich hatte das Werkzeug in ca. 30 Minuten am Laufen. Ich hatte lediglich die folgenden zwei kleineren Probleme:

  • Unbedingt die geforderte Version der Eclipse Modeling Tools installieren (2022-09), nicht die aktuellste.
  • Bei Schritt 6 finde ich das Projekt abweichend unter „Eclipse Projects“ (nicht, wie angegeben, unter „Github Projects“)
  • Auf meinem Rechner war Java 11 installiert, für die volle Funktionalität wird Java 17 benötigt

Genug Arbeitsspeicher ist auch ein Muss: Die eigentliche Arbeitsumgebung wird aus der Entwicklungsumgebung heraus ausgeführt. Das bedeutet, dass wir zwei Eclipse-Instanzen mit jeweils ca. 2GB Speicherbedarf am Laufen haben.

Features der SysML v2 Referenzimplementierung

Wir dürfen natürlich von einer Referenzimplementierung keine Wunder erwarten. Die IDE hat folgende Features:

  • Texteditor für .sysml-Dateien mit Syntax-Highlighting
  • Modellbaum für das textuelle Modell
  • Rendern des Modells mit PlantUML (falls installiert, aber sehr empfehlenswert)

Die Referenzimplementierung setzt auf dem Eclipse Framework auf, konkret auf dem Eclipse Modeling Framework (EMF). Damit basiert die Referenzimplementierung auf einer robusten Engine. EMF kann auch ohne die Eclipse-Benutzeroberfläche verbaut werden. Außerdem gibt es für EMF eine Menge nützlicher Bibliotheken.

Im Rahmen dieser Evaluierung habe ich nur die Benutzeroberfläche evaluiert. Aber ich hatte in der Vergangenheit bereits mit EMF gearbeitet. Insbesondere bin ich Eclipse Project Lead des Requirements Modeling Frameworks (RMF), das ebenfalls auf EMF basiert und die Basis für die ReqIF Referenzimplementierung darstellt.

Nützliche Modellierungstabellen

Ein Bild sagt mehr als 1000 Worte: Kapitel 7 bringt visuell die Beziehung zwischen Modellelement, grafischer und textueller Notation auf den Punkt.

Kapitel 7 der Spezifikation hat das Potential, sich in eine Kurzreferenz weiterzuentwickeln. Die dort abgebildeten Tabellen sind sehr nützlich, um schnell ein textuelles Modell aufzusetzen. Hier ein Beispiel:

SysML v2 Parts: Textuell und grafisch
Bildquelle: SysML v2 Spezifikation, aus Tabelle 14, Kapitel 7.11.1

Ein kleines Projekt

Die folgenden Screenshots zeigen ein einfaches Beispielmodell im Texteditor (links) und die dazugehörige Visualisierung mit PlantUML (mitte). Wer schon mal mit irgendeiner Engwicklungsumgebung (IDE) gearbeitet hat, wird sich hier schnell orientieren.

Interessant ist die Gliederung (rechts), von der nur ein Teil zu sehen ist. Die Gliederung spiegelt das interne Modell wieder und ist wesentlich feingranularer als die Textdarstellung suggeriert.

Was sehr angenehm ist: die Visualisierung ist abhängig von der Cursorposition im Editor. Wenn ich im Editor in Zeile 13 arbeite, dann zeigt die PlantUML-Sicht auch nur das Part „Article“ an. Dieses Verhalten kann der Anwender natürlich, wie vieles andere auch, konfigurieren.

Fazit

Wir dürfen nicht vergessen, dass SysML v2 noch gar nicht offiziell verabschiedet wurde.

Michael Jastram

Creator and Author of SE-Trends