SysML
Die “Systems Modeling Language” (SysML) ist eine Erweiterung (UML-Profil) von UML. Ziel war es eine gegenüber der UMl leichter verständliche Modellierung für den Bereich Systems Engineering komplexer Systeme zu schaffen. Nicht selten werden nur die beiden Blockdiagramme und dann auch noch oft falsch verwendet.
Die beiden SysML Blockdiagramme ersetzen das Component Diagramm und das Composite Structure Diagram der UML. Sie dienen wie die Pendants der UML dazu, ein komplexes Gesamtsystem in handlichere Teile (SysML: Block, UML: Component) zu zerlegen und dabei die Beziehungen zwischen den Teilen darzustellen.
Während die UML angebotene und verwendete Schnittstellen in den Vordergrund rückt, nutzt die SysML Verbindungen zwischen Ports und erlaubt dort die Angabe der Richtung in der Daten fließen. Und entsteht die häufig zu sehende falsche Verwendung der SysML. Daraus dass eine Datenflussrichtung angegeben werden kann wird oft geschlossen, dass es sich um ein Ablaufdiagramm handelt bzw. es dazu verwendet werden darf. Tatsächlich unterscheidet aber auch die SysML klar zwischen Struktur- und Verhaltensdiagrammen. Die Blockdiagramme sind Strukturdiagramme, enthalten also keinerlei Informationen über zeitliche Abläufe. Dafür nutzt die SysML die entsprechenden UML-Diagramme (UseCase-Diagramm, Aktivitätsdiagramm, Sequenzdiagramm, Zustandsdiagramm) nahezu unverändert.
Mit dem Requirement Diagramm ergänzt die SysML um einen Diagrammtyp, der in der UML oft schmerzlich vermisst wird. Schließlich gibt es immer auch Dinge, die sich nur textuell darstellen lassen, z.B. nichtfunktionale Anforderungen wie “Die Reaktionszeit soll kleiner 5 Sekunden sein”.
In unseren Projekten der letzten Jahre haben wir immer eine Mischung aus SysML und UML vorgefunden. Dabei ergibt es sich oft, dass die grobe Architektur mithilfe der SysML (vorwiegend Blockdiagramme) modelliert wird. Je näher es dann an die reine Software-Entwicklung geht, desto öfter trifft man auf die reine UML. Solange man nicht im selben Projekt für ein und dieselbe Abstraktionsebene mal SysML udn mal UML verwendet spricht nichts gegen eine Mischung von UML und SysML.
Und für jede Modellierungsmethodik gilt, dass klar definiert werden sollte, welche Notation wofür eingesetzt wird. Beide Notationen (SysML wie UML) sind ein gutes Stück universell konzipiert und somit für fast jede System-Modellierung geeignet. Und genau deswegen ist es nötig diese Universalität durch projektspezifische Festlegungen zu beschränken. Wir empfehlen unseren Kunden diese Festlegungen mithilfe eines Metamodells zu dokumentieren. Unser Metamodell-Checker erlaubt es dann sogar die Einhaltung dieser Festlegungen automatisiert zu prüfen.