Systems Engineering Trends

Jede Woche Neuigkeiten aus der Welt des Systems Engineering

Modellierung & MBSEMuster

Allocation: Verhalten und Struktur in SysML verknüpfen

Zwei wesentliche Aspekte im MBSE sind das Modellieren von Verhalten und Struktur. Mit SysML wird die Struktur mit Blöcken modelliert und das Verhalten mit Aktivitäten. Allocation ist der Prozess, Verhalten und Struktur zu verknüpfen. Dazu ein kleines Beispiel.

Das Verhalten der Welt verändern

In der Regel sind bei der Entwicklung von Systemen daran interessiert, das Verhalten der Welt zu verändern. Es geht also um Funktionalität. Ein Ladegerät sorgt dafür, dass sich der Ladezustand des Smartphones erhöht. Das wäre ein einfacher Use Case: „Smartphone laden“.

Doch dieser Use Case findet nicht im luftleeren Raum statt. Daher brauchen wir zunächst einen Kontext, den wir mit SysML-Blöcken modellieren. Für dieses einfache Beispiel besteht unser Kontext aus Smartphone, Ladegerät und Steckdose (die Kabel lassen wir der Einfachheit weg).

Allocation: Anwendungsfall im Kontext betrachten

Auf der Ebene des Anwendungsfall läuft dieser im Kontext ab. Daher ist das unsere erste Allocation. Die anderen Blöcke unterstützen den Anwendungsfall, was wir über eine Assoziation ausdrücken können. Visuell können wir das in einem Use Case Diagram darstellen:

Abb. 1: Die Zuordnung (Allocation) des Use Cases „Smartphone laden“ auf den Ladekontext

Bevor wir den Anwendungsfall „Smartphone laden“ weiter verfeinern, sollten wir allerdings den Ladekontext genauer definieren. Insbesondere haben die Blöcke standardisierte Schnittstellen (außer „User“), nämlich Schuko (Steckdose) und USB-C (Smartphone). Der Charger hat das Gegenstück zu beidem. Das können wir folgendermaßen im Kontextdigramm (idb) visualisieren:

Abb 2: Die Elemente des Ladeknotext, die formale Schnittstellen haben (Schuko und USB-C). Der Nutzer wurde hier ausgelassen, auch wenn diese zum Ladekontext gehört.

Der Nutzer (User) ist zwar Teil des Kontext „Phone is Charging“, hat jedoch keine Schnittstellen, die wir explizit modellieren müssen.

Mit diesem Verständnis können wir nun den Use Case weiter in Aktivitäten herunterbrechen, die sich im Aktivitätsdiagramm als Aktionen manifestieren. Die Aktionen müssen jedoch mit einem strukturellen Element verknüpft werden. Das geschieht visuell über das Zuordnen zu einer „Swimlane“, wie es im folgenden Diagramm zu sehen ist:

Abb 3: Das Verhalten „Smartphone laden“ wurde hier weiter heruntergebrochen und die einzelnen Aktivitäten den Elementen des Kontexts (aus Abb. 1) zugewiesen (Allocation)

Black-Box-Denken durch Allocation realisieren

Sinn und Zweck des bisherigen ist es, unser System in Bestandteile aufzubrechen, die wir unabhängig zueinander betrachten können. Mit anderen Worten, wir wollen, dass jeder Bestandteil als Black Box betrachtet werden kann. Eine Black Box hat zwei wichtige Eigenschaften: (1) Sie kann verbaut werden, ohne dass der Konsument etwas über die Implementierung wissen muss; und (2) Die Implementierung einer Black Box muss nichts über die Verwendung dieser im System wissen. Beides setzt voraus, dass sowohl des verbauende System und die Implementierung sich an die Schnittstellenspezifikation halten.

Durch die Allocation auf Swimlanes erkennen wir sowohl Schnittstellen bezüglich des Ablaufs (Control Flow) als auch von Strömen (Stream), die Material (einschließlich Energie) oder Information darstellen können. Jede Überschreitung einer Swimlane durch einen Pfeil repräsentiert so eine Schnittstelle.

Im konkreten Beispiel haben wir nun zum Beispiel die Aktivität „Laden durchführen“, die dem „Ladegerät“ zugeordnet ist. Wir können nun diese Aktivität weiter herunterbrechen, ohne etwas über den weiteren Kontext wissen zu müssen.

Das leuchtet ein: Unser Ladegerät kann nun alles Mögliche über jede beliebige Steckdose laden — solange die in Abb. 2 gezeigten Schnittstellen korrekt verbunden werden (Schuko und USB-C).

In Wirklichkeit ist es natürlich noch einen Tick komplizierter. Konkret müssen nicht nur die Schnittstellen passen, sondern auch nichtfunktionale Anforderungen erfüllt werden, wie bspw. das zur Verfügung stellen und Einhalten der maximale Leistung. Weiterhin können die Schnittstellen ebenfalls weiter verschachtelt werden, um mehr Detail festzuhalten. Abb. 4 zeigt beispielhaft, wie wir den Schuko-Port modellieren könnten:

Abb 4: Wir können weitere Details eines Ports modellieren. Quelle: CameoMagic via Youtube

Beliebig tief Allocation weiter betreiben

Wir haben eben gesehen, wie wir Verhalten und Struktur (Use Case und Kontext) über Allocation auf die nächsttiefere Ebene abgebildet haben. Dies können wir beliebig tief weiterbetreiben. Nützlich finde ich diesbezüglich Abb 5 aus dem MagicGrid Book of Knowledge:

Abb 5: Verhalten und Struktur kann über Allocation beliebig tief heruntergebrochen werden. Auf jeder Ebene muss (1) eine Funktion in weitere Unterfunktionen zerlegt werden; (2) Das System, dem diese Funktion zugeordnet ist, muss ebenfalls in Subsysteme zerlegt werden; (3) Die Unterfunktionen werden den Subsystemen zugeordnet. Quelle: Dassault MagicGrid Book of Knowledge

Wie man sich denken kann, kann hier schnell die Anzahl der Modellelemente explodieren. Daher ist es wichtig, im Werkzeug skalierbare Strukturen für den Modellbaum anzulegen. Neben der Konvention im MagicGrid-Buch spricht auch das SYSMOD-Buch gute Empfehlungen aus.

Nur mit vernünftiger Methodik arbeiten!

Richtige Allocation ist kein Selbstzweck. In der Praxis hilft sie uns:

  • Subsysteme voneinander zu entkoppeln
  • Vollständigkeit der Subsystemspezifikationen sicherstellen
  • Varianten- und Produktlinen ermöglichen
  • … und vieles mehr

Das hier gezeigte ist nur ein einziger Aspekt der SysML-Modellierung. Um Allocation effektiv im MBSE zu nutzen, brauchen wir den entsprechenden Arbeitskontext (Werkzeug und Methodik).

Fazit

Allocation ist ein wichtiges Konzept im MBSE, um Strukturen und Verhalten zu verknüpfen. SysML stellt uns die Mittel für Allocation bereit. Jeder an MBSE interessierte sollte verstehen, wie Allocation funktioniert und warum diese wichtig ist.

Photo by Kelvin Li on Unsplash

Michael Jastram

Creator and Author of SE-Trends