Wenn man sich entschließt, modellbasierte System-Entwicklung (MBSE) mit SysML einzuführen, kommt man um ein Software-Tool nicht herum. SysML-Diagramme auf Papier zu entwerfen, macht nicht wirklich viel Laune.

Insbesondere erzeugt man mit einem Diagramm eigentlich nur eine bestimmte Sicht auf das Systemmodell. Die Menge der Modellelemente mit ihren Beziehungen untereinander beinhalten die Informationen, die man in den Diagrammen nur ausschnittsweise wiedergibt.

Insofern reicht auch ein Tool wie Microsoft Visio nicht aus, denn man erhält damit nur ein „Malprogramm“ und in keinster Weise ein Werkzeug, dem die Semantik der Sprache hinterlegt ist.

Wie für jede strukturierte Entscheidung sollte auch bei einer Tool-Auswahl folgendes Vorgehen verfolgt werden:

  1. Kriterien festlegen für die Bewertung der möglichen Optionen
  2. Mögliche Lösungen identifzieren
  3. Verfahren zur Bewertung der Lösungen auswählen
  4. Identifizierte Lösungen mit dem gewählten Verfahren anhand der festgelegten Kriterien bewerten
  5. Auf Grundlage der Bewertung die beste Lösung auswählen

Um eine Handvoll geeigneter Kriterien zu festzulegen, macht es Sinn, sich zunächst einmal über die Anforderungen an ein solches Modellierungs-Tool Gedanken zu machen. Im folgenden finden Sie daher einige Anforderungen, die auch bei Ihnen passen könnten. In der Regel wird dasselbe Tool sowohl von den System-Ingenieuren (für SysML-Modelle) als auch von Software-Entwicklern (für UML-Modelle) verwendet. Daher finden sich Anforderungen beider Welten wieder.

Eine erste Priorisierung kann mittels Unterscheidung in soll, sollte, kann vorgenommen werden. Die Anforderungen sind wie folgt formuliert, je nachdem ob es eine Benutzer-unabhängige Tool-Aktivität ist (1), das Tool dem Benutzer eine bestimmte Funktionalität zur Verfügung stellt (2) oder die Anforderung eine bestimmte Eigenschaft des Tools beschreibt (3):

  1. Das Tool soll…
  2. Das Tool soll die Möglichkeit bieten, …
  3. Das Tool soll fähig sein, …

Dabei wird auf das Präfix „Das Tool…“ verzichtet. Hier nun also eine Auswahl von Anforderungen an ein SysML/UML-Tool:

Modellierung

  1. soll die Möglichkeit bieten, entsprechend UML 2.3 zu modellieren.
  2. soll die Möglichkeit bieten, entsprechend SysML 1.2 zu modellieren.
  3. sollte die Möglichkeit bieten, Tabellen  zu erstellen, mit denen sich Beziehungen zwischen Modellelementen darstellen lassen.

 Benutzerfreundlichkeit

  1. soll ansprechend und intuitiv zu bedienen sein.
  2. sollte dem Benutzer die Möglichkeit bieten, zwischen deutscher und englischer Bedienoberfläche umzuschalten.

Konfigurationsmanagement und Zusammenarbeit

  1. soll die Möglichkeit bieten, mit mehreren Benutzern parallel an einem Modell zu arbeiten. Ein Modell bezieht sich dabei auf das System eines Projektes; die Aufteilung eines Modells in Pakete ist denkbar.
  2. soll die Möglichkeit bieten, auf alte Versionen eines Modells zugreifen zu können.
  3. sollte die Möglichkeit bieten, die Unterschiede zwischen zwei Modellversionen darzustellen (diff).
  4. sollte die Möglichkeit bieten, die Unterschiede zwischen zwei Versionen eines Elements darzustellen.
  5. soll die Möglichkeit bieten, andere Modelle (Module) in ein Projekt einzubinden

Code Engineering

  1. soll die Möglichkeit bieten, C++ Source Code (.c und .h) aus Klassendiagrammen zu erzeugen.
  2. sollte die Möglichkeit bieten, zuvor generierten, veränderten Source Code wieder mit dem Modell zu synchronisieren.

Systemanforderungen

  1. soll fähig sein, unter Windows XP und Windows 7 zu laufen.
  2. kann fähig sein, unter Linux zu laufen.
  3. sollte fähig sein, sich in Microsoft Visual Studio zu integrieren.
  4. sollte fähig sein, sich in Eclipse zu integrieren.

Schnittstellen

  1. soll die Möglichkeit bieten, aus Diagrammen Dokumente zu generieren.
  2. sollte die Möglichkeit bieten, die Generierung von Dokumenten zu beeinflussen, bspw. durch die Erstellung von Templates, durch die Einbeziehung von Tagges Values und anderer Modellvariablen.
  3. soll die Möglichkeit bieten, Diagramme als Bilddatei (PNG, JPG) zu exportieren.
  4. soll die Möglichkeit bieten, Modellelemente mit Anforderungen aus DOORS zu verknüpfen.
  5. soll die Möglichkeit bieten, Modelldaten mit XText auszutauschen.
  6. soll die Möglichkeit bieten, sich über Skripte automatisieren zu lassen.
  7. soll die Möglichkeit bieten, von außen (per API) auf Modelle zugreifen zu können.

Weitere Anforderungen

  1. kann die Möglichkeit bieten, Metriken bzgl. des Modells zu erzeugen

Sind das in etwa die Anforderungen, die Sie an ein solches Tool stellen? Welche wichtigen Punkte fehlen?

, , , , ,