Systemmodellierung

Requirements Engineering mit der SysML

Seite: 3/3

Anbieter zum Thema

Neben dem Requirements Engineer arbeitet auch der Systemarchitekt mit der SysML. Er übersetzt Lastenhefte in eine fachliche Architektur. Der Systemarchitekt im Projekt erstellt ausgehend von den Schnittstellen und den High-Level-Requirements ebenfalls in SysML einen ersten Grobentwurf des Standheizungssystems. Wir sehen die Steuerungseinheit für die Anforderung „Steuerung“, den Kühlkreislauf in Reaktion auf „Motorerwärmung“ und das wichtigste Bauteil des Systems, den Brenner (Grafik rechts). Davon ausgehend untersucht der Systemarchitekt die Struktur des Brenners genauer in einem weiteren Blockdiagramm.

Ein Brenner besteht aus einer Brennkammer, der zunächst mittels der Autobatterie und eines Glühstifts vorgeheizt wird. Brennluft aus der Umgebung wird mittels eines Gebläses in die Brennkammer geleitet. Kraftstoff aus dem Tank des Autos wird mittels einer Kraftstoffpumpe in die Brennkammer geleitet. Gesteuert wird der Brenner über die Brennersteuerung.

Modellierung von Strukturen und Verhalten

Der Systemarchitekt wird nun in weiteren Schritten für jede untergeordnete Baugruppe ein detailliertes Blockdiagramm erstellen, eventuell ergänzt um interne Blockdiagramme.

Nicht nur Strukturen können mit der SysML abgebildet und mit Anforderungen verbunden werden, sondern auch Verhalten. Aus Anforderungen können in SysML Verhaltensdiagramme abgeleitet werden, die Anforderungen genauer erklären. SysML kennt den „refine“-Trace Link, um die Verbindungen zwischen Elementen aus Verhaltensdiagrammen und Requirements darzustellen

Im ersten Schritt werden für das Requirement „Brenner“ die Use Cases „Heizen“ und „Starten“ definiert, wobei „Starten“ per „include“-Beziehung immer mit einbezogen wird, wenn der Use Case „Heizen“ ausgeführt wird.

Haben wir die gewünschten Use Cases modelliert, können wir in einem weiteren Präzisierungsschritt andere Verhaltensdiagramme zur Verfeinerung der Use Cases einsetzen oder direkt mit Hilfe von Verhaltensdiagrammen Requirements verfeinern. In Frage kommen dafür hauptsächlich das Aktivitätsdiagramm und das Sequenzdiagramm. In unserem Beispiel modellieren wir Use Case „Heizen“ mit Hilfe der Aktivität „HeizenDetails“.

Es gibt parallele Aktivitäten („Luftansaugen“ und „Glühstift heizen“) und Transitionen mit Entscheidungen (Übergang von „Glühstift heizen“ zu "Kraftstoff ansaugen“). Neben den Aktivitäten mit ihren Kontrollflüssen fließen auch korrespondierende Materialflüsse (Luft und Kraftstoff) ein.

Requirements durch parametrische Diagramme simulieren

Beispiel für einen „refine“-Link. Die gezeigten Use Cases „verfeinern“, d.h. erklären genauer die Anforderung „Brenner“. Nicht gezeigt sind die textuellen Informationen, die üblicherweise bei Use Cases hinterlegt werden. Use Case „Heizen“ inkludiert im Beispiel Use Case „Starten“: jedesmal bevor der Brenner aufgeheizt werden soll, muss er vorher gestartet worden sein.
Beispiel für einen „refine“-Link. Die gezeigten Use Cases „verfeinern“, d.h. erklären genauer die Anforderung „Brenner“. Nicht gezeigt sind die textuellen Informationen, die üblicherweise bei Use Cases hinterlegt werden. Use Case „Heizen“ inkludiert im Beispiel Use Case „Starten“: jedesmal bevor der Brenner aufgeheizt werden soll, muss er vorher gestartet worden sein.
(Bild: Mixed Mode)

Eine Besonderheit der SysML sind parametrische Diagramme. Mit ihnen lassen sich auf mathematischen Gleichungen beruhende nicht-funktionale Anforderungen modellieren, die sonst auf einer rein textuellen Repräsentation basieren würden, und unter Zuhilfenahme von zusätzlichen Tools sogar simulieren. Die Grundbausteine parametrischer Diagramme bestehen aus ConstraintBlocks. Diese Blöcke enthalten als Constraint (engl. für „Einschränkung“ bzw. „Randbedingung“) etwa eine physikalische Gleichung. Die Variablen dieser Gleichung werden als ConstraintParameter eingetragen.

In unserem Beispiel wollen wir die benötigte Leistung des Brenners in Abhängigkeit der vorhandenen Menge an Kühlflüssigkeit (Wasser), dessen Wärmekapazität, der Anfangs- und benötigten Endtemperatur des Kühlmittels und einer zu bestimmenden Heizdauer errechnen. Wir beginnen mit der Formulierung des Wärmeinhalts des Kühlmittels in Abhängigkeit von den anderen Größen.

Die Gleichung für spezifische Wärmekapazität als SysML-ConstraintBlock. Die spezifische Wärmekapazität ist eine der physikalischen Größen, die zur Berechnung der Brennerleistung eingesetzt werden.
Die Gleichung für spezifische Wärmekapazität als SysML-ConstraintBlock. Die spezifische Wärmekapazität ist eine der physikalischen Größen, die zur Berechnung der Brennerleistung eingesetzt werden.
(Bild: Mixed Mode)

In einem parametrischen Diagramm kann man nun ConstraintBlocks mit PropertyValues aus Blöcken der Struktur verbinden und mit anderen ConstraintBlocks zu Netzwerken von Gleichungen zusammenfügen. Geeignete SysML-Tools können Szenarien für diese Gleichungssysteme instanziieren und durch Einsetzen von Werten entweder durch eigene oder durch Anbindung an Third-Party-Gleichungslöser auflösen.

In unserem Brennerbeispiel verbinden wir die PropertyValues „Wärme“ und „Leistung“ des Brenners sowohl mit dem ConstraintBlock für die Wärmekapazität als auch mit dem ConstraintBlock für die Berechnung der Leistung aus Wärme und Heizdauer. Danach instanziieren wir den „Toplevel“-Block „Standheizung“ und lösen die Gleichung für die Leistung des Brenners mittels eines mathematischen Zusatztools.

Systemverhalten wird in frühen Analysephasen verständlich

Dieses parametrische Diagramm zeigt eine komplette Gleichungskette und die Belegung der einzelnen ConstraintParameter durch PropertyValues aus Blöcken. Hiermit kann z. B. nach der Brennerleistung „P“ aufgelöst werden, wenn man die Heizdauer des Brenners, die Masse und den Temperaturunterschied des Wassers im Wärmekreislauf kennt.
Dieses parametrische Diagramm zeigt eine komplette Gleichungskette und die Belegung der einzelnen ConstraintParameter durch PropertyValues aus Blöcken. Hiermit kann z. B. nach der Brennerleistung „P“ aufgelöst werden, wenn man die Heizdauer des Brenners, die Masse und den Temperaturunterschied des Wassers im Wärmekreislauf kennt.
(Bild: Mixed Mode)

Die Modellierung von Anforderungen und der Systemarchitektur mit Hilfe der SysML kann strukturelle Zusammenhänge und das Verhalten von Systemen bereits in einer Frühphase der Systemanalyse verständlich sichtbar machen. Die Lücke zwischen textuellen Requirements in RM-Tools und der Systemarchitektur in Modellierungstools verringert sich bzw. verschwindet.

Die SysML ist weniger softwarelastig als die UML und für Systems Engineering deshalb besser geeignet. Nicht-funktionale Anforderungen sind traditionell eher ein Schwachpunkt in der Modellierung. Mit Hilfe von parametrischen Diagrammen lassen sich aber vor allem mathematisch formulierbare Randbedingungen beschreiben beziehungsweise sogar simulieren.

* * Frank Lippert ist Softwarearchitekt bei Mixed Mode. Er befasst sich mit der Modellierung von Software- und Systemarchitekturen mit UML und SysML.

(ID:39616810)