Der definitive Leitfaden für die textuelle Notation von SysML v2
Systems Modeling Language Version 2 (SysML v2) markiert eine massive Veränderung im Systemengineering. Indem man von den starren, UML-basierten grafischen Beschränkungen von SysML v1 abrückt, führt SysML v2 eine sprachgetriebene, textbasierte Syntax. Diese Syntax behandelt Struktur, Verhalten, Anforderungen und Analyse als tief integrierte Textelemente.
Dieser umfassende Leitfaden erläutert die zentralen Säulen, Konzepte und die Syntax von SysML v2 anhand eines konkreten AutonomeDrohne Entwurfsbeispiel.

1. Das zentrale Paradigma: Definitionen im Vergleich zu Verwendungen
Das wichtigste architektonische Konzept in SysML v2 ist die strikte Trennung zwischen Definitionen (Entwurfspläne) und Verwendungen (kontextuelle Instanzen).
-
Das
defSchlüsselwort: Weist auf eine wiederverwendbare Definition, einen Typ oder ein Element-Entwurfsplan hin. Es existiert erst als physisches Objekt, wenn es verwendet wird. -
Kein
defSchlüsselwort: Weist auf eine Verwendung hin. Es stellt eine tatsächliche Erscheinung oder Komponenteninstanz innerhalb eines bestimmten übergeordneten Systems dar.
// DEFINITION: Ein wiederverwendbarer Entwurfsplan für jede Batterie
part def Battery;
// VERWENDUNG: Eine spezifische Instanz einer Batterie innerhalb unseres Drohnen-Systems
part powerSource : Battery;
Diese Unterscheidung ermöglicht es Ingenieuren, eine Komponente einmal zu definieren und sie über mehrere Unterglieder mit unterschiedlichen Namen, Konfigurationen und internen Verbindungen zu nutzen.
2. Strukturelle Architektur: Teile, Gegenstände und Anschlüsse
SysML v2 teilt physische oder logische Architekturen in Komponenten, die Dinge, die durch sie fließen, und die Verbindungsstellen, die sie verbinden, auf.
Teile und Gegenstände
-
teil def(Block / Komponente): Definiert eine strukturelle, physische oder logische Systemkomponente. -
gegenstand def(Flow-Element): Definiert nicht feste Elemente – wie Datenströme, Flüssigkeiten, Kraft oder Elektrizität – die zwischen Teilen fließen.
Ports und Schnittstellen
-
port def(Schnittstellen-Spezifikation): Definiert eine Schnittstellen-Grenze und legt explizit fest, was für Daten oder Elemente eintreten kann (in) oder verlassen kann (out).
Hier ist, wie diese Komponenten deklariert und innerhalb eines System-Namensraums verschachtelt werden:

package DroneSystemExample {
private import ScalarValues::*;
private import SI::*;
// Basis-Entwürfe (Definitionen)
item def Power;
port def PowerOutPort {
out item powerElec : Power;
}
port def PowerInPort {
in item powerElec : Power;
}
part def FlightController;
part def PropulsionSystem;
part def Battery;
// Integrierte Systemumgebung
part def AutonomousDrone {
// Attribute / Wert-Eigenschaften
attribute enduranceActual : Real;
// Unterteil-Nutzung (Instanziierung der Definitionen)
part flightController : FlightController;
part propulsionSystem : PropulsionSystem;
part powerSource : Battery;
// Port-Nutzung (Instanziierung der Schnittstellen)
port pBatteryOut : PowerOutPort;
port pPropulsionIn : PowerInPort;
}
}
3. Die Anforderungs-Säule (Problemraum)
In SysML v1 waren Anforderungen oft Textblöcke, die von der ingenieurwissenschaftlichen Mathematik isoliert waren. In SysML v2 sind Anforderungen erster-Klasse-Textdefinitionen mit Metadaten, beschreibendem Text und stark typisierten Attributen zur automatisierten Überprüfung.
requirement def RangeRequirement {
doc /* Der Drohne muss eine kontinuierliche Flugdauer von mindestens 45 Minuten aufrechterhalten. */
attribute enduranceTarget : Real = 45.0;
}

Nachverfolgbarkeit mit erfüllen
Um die Schleife zwischen dem Problemraum (Anforderungen) und dem Lösungsraum (Struktur) zu schließen, verwendet SysML v2 explizite Beziehungsschlüsselwörter wie erfüllen direkt im Teil-Kontext:
part def AutonomousDrone {
// Instanziiert eine Anforderungs-Nutzung, um die Definitionsmapping sauber zu erfüllen
erfüllen anforderung : RangeRequirement;
}

4. Die Verhaltens-Säule (Ausführungsraum)
SysML v1 zwang eine klare Trennung zwischen Struktur (Interne Block-Diagramme) und Verhalten (Aktivitäts-Diagramme). SysML v2 hebt diese Barriere vollständig auf, indem es Aktionen und Steuerflüsse zu nativen, im Geltungsbereich liegenden strukturellen Elementen macht.
Sequenzierte Aktionen und Steuerfluss
Mit Hilfe des action Schlüsselwort können Sie Funktionen deklarieren, die Eingaben akzeptieren (in) und Ausgaben übergeben (out). Steuerflüsse werden linear mit dem then Schlüsselwort geschrieben, wodurch der Bedarf an komplexen Steuerflussdiagrammen entfällt.
Aktion executeMission {
in targetCoordinates;
out missionStatus;
Aktion sTakeoff;
dann Aktion sNavigate;
dann Aktion sLand;
}
5. Funktionale Zuordnung: Verbindung von Verhalten mit Struktur
Zuordnung beantwortet die grundlegende Frage der Systemtechnik: Welcher Baustein führt welche Funktion aus?
SysML v2 löst dies sauber mit dem perform Schlüsselwort innerhalb eines Teileverwendungsblocks. Mit Hilfe von Punktnotation (.), können Sie tief in verschachtelte Aktionsschleifen eindringen, um Operationen direkt auf physische Hardware abzubilden.
Teil def AutonomousDrone {
// Unterteile weisen Verhalten durch explizites 'Ausführen' ihrer zugewiesenen Schritte zu
Teil flightController : FlightController {
führe executeMission.sNavigate aus;
}
Teil propulsionSystem : PropulsionSystem {
führe executeMission.sTakeoff aus;
}
// Eingebettete Verhaltensdefinition
Aktion executeMission {
Aktion sTakeoff;
dann Aktion sNavigate;
dann Aktion sLand;
}
}

Zusammenfassung der Kernschlüsselwörter
| Schlüsselwort | Bereich | Zweck |
|---|---|---|
package |
Strukturell | Definiert einen Container-Namensraum, um Ihr Modell zu organisieren. |
private import |
Strukturell | Bringt externe Standardbibliotheken (wie Skalarwerte oder SI Einheiten) in den Geltungsbereich bringen, ohne sie stromabwärts preiszugeben. |
def |
Paradigma | Bezeichnet eine wiederverwendbare Bauplan- oder Typdefinition. |
Teil / Element |
Strukturell | Erklärt eine physische/logische Komponente oder einen fließenden Stoff-/Datenstrom im System. |
Port |
Strukturell | Legt eine Schnittstellenbegrenzung fest, die definiert eingang und ausgang Ströme. |
Anforderung |
Problem | Definiert einen textbasierten Vertrag mit typisierten Attributen und mathematischen Zielen. |
erfüllen |
Beziehung | Verbindet ein strukturelles Element direkt mit der Anforderung, die es erfüllt. |
Aktion |
Ausführung | Definiert einen Verhaltensschritt oder eine operative Funktion. |
dann |
Ausführung | Erzwingt eine sequenzielle Ausführungsreihenfolge zwischen Aktionen. |
ausführen |
Zuordnung | Ordnet eine Verhaltensaktion direkt dem physischen Teil zu, der für ihre Ausführung verantwortlich ist. |
Vollständiges Beispiel des SysML V2: Drei Säulen

PaketDroneSystemExample {
privat importieren Skalarwerte::*;
privat importieren SI::*;
// ==========================================
// BASIS-BAUPLAN-DEFINITIONEN
// ==========================================
Element def Leistung;
Port def LeistungsAusgangsPort {
aus Element elektrischeLeistung : Leistung;
}
Port def LeistungsEingangsPort {
ein Gegenstand powerElec : Leistung;
}
Teil def Flugsteuerung;
Teil def Antriebssystem;
Teil def Batterie;
// ==========================================
// 1. ANFORDERUNGSPFEILER (Problemraum)
// ==========================================
Anforderung def ReichweitenAnforderung {
doc /* Der Drohne muss eine kontinuierliche Flugdauer von mindestens 45 Minuten aufrechterhalten. */
Attribut EnduranceZiel : Real = 45.0;
}
// ==========================================
// 2. STRUKTUR- UND VERHALTENSPEILER
// ==========================================
Teil def AutonomeDrohne {
Attribut enduranceActual : Real;
// Unterteile weisen das Verhalten durch explizites „Ausführen“ ihrer zugewiesenen Schritte zu
teil flightController : FlightController {
ausführen executeMission.sNavigate;
}
teil propulsionSystem : PropulsionSystem {
ausführen executeMission.sTakeoff;
}
teil powerSource : Battery;
// Schnittstellenverbindungen
port pBatteryOut : PowerOutPort;
port pPropulsionIn : PowerInPort;
// FIX 1: Instanziiert eine Anforderungsverwendung, um die Definitionsabbildung sauber zu erfüllen
erfüllen anforderung : RangeRequirement;
// ==========================================
// 3. VERHALTENSPFEILER (Ausführungsraum)
// ==========================================
// Saubere, sequenzielle Aktionen definiert native im Geltungsbereich
aktion executeMission {
in Zielkoordinaten;
aus Missionsstatus;
Aktion sStart;
dann Aktion sNavigieren;
dann Aktion sLandung;
}
}
}














