Tipps und Tricks für die Simulation von State Machines mit Enterprise Architect

Für die Modellierung von Systemen und Software verwenden wir das Tool Enterprise Architect. Das Tool ist ein leistungsfähiges Werkzeug zur Modellierung von Systemen und Software und ist in Entwicklungsabteilungen weit verbreitet. In bereits veröffentlichten Artikeln haben wir z. B. das Thema Requirements Engineering mit Enterprise Architect beleuchtet. In diesem Artikel wollen wir uns mit der grafischen Simulation von State Machines auseinandersetzen. Ich möchte Ihnen ein paar Tipps und Tricks mitgeben, wie wir bei der Simulation von State Machines mit Enterprise Architect vorgehen.

Anlegen einer State Machine

Beim Anlegen einer State Machine in Enterprise Architect wird ein Package mit einem leeren Diagramm der Kategorie State Machine angelegt.


Standard Diagramm für die State Machine


Leere State Machine

Bei diesem Diagramm handelt es sich nicht um ein in der Simulation ausführbares Diagramm. Daher empfiehlt es sich in dieses State Machine Diagramm eine State Machine als State Element (in unserem Beispiel: Main State Machine) einzufügen. Diese State Machine (Main State Machine) ist eine simulierbare Datei und enthält ein visuelles Diagramm, welches man als „Hauptdiagramm“ verwenden sollte. Die ursprüngliche State Machine kann in einem Ordner für unsichtbare Komponenten versteckt werden.


ausführbare State Machine


Ausführbare State Machine in ursprünglicher State Machine

Aufbau der State Machine

Um eine Simulation durchzuführen, benötigt das Modell einen Anfangspunkt (Initial) und States bzw. State Machines. Ein Simulationspfad kann mit einem Endpunkt (Final) beendet werden. Diese Elemente müssen mit Transitions verbunden werden. Eine Verschachtelung der Elemente ist möglich und in State Machines können untergeordnete Diagramme in einer eigenen Ansicht erstellt werden.


Erstellen eines Überganges zwischen Zuständen

Steuern der State Machine

Einfache Übergänge (Transitions) werden selbstständig durch das Programm signalisiert und führen somit automatisch zum nächsten Element.

Um eine manuelle Kontrolle über die Vorgänge zu haben, wird dem Übergang ein Trigger zugewiesen. In unserem Beispiel haben wir hier die Trigger „Mainpower connect“ und „Power loss“ um die Zustände manuell schalten zu können.

Organisieren von States und State Machines

Zur Verbesserung der Übersichtlichkeit gibt es verschiedene Möglichkeiten Diagrammelemente in unterschiedlichen Ebenen anzuordnen.

Boxed

Bei Boxed State Machines werden die Elemente innerhalb der Grenzen positioniert und können direkt über Übergänge mit anderen Elementen verbunden werden. Das bedeutet, dass alle Elemente in diesen State Machines auf der aktuellen Ebene sichtbar sind. Bei kleinen Diagrammen ist so eine schnelle Auffassung der Elemente gegeben. Bei komplexen Diagrammen führt diese Variante schnell zu einer Informationsflut und ist nicht hilfreich für eine übersichtliche Darstellung. Die boxed Methode kann für States und State Machines verwendet werden.


Boxed Elemente in dem State „Powered“ und der State Machine „State Machine boxed“

Detailed

Bei Detailed State Machines werden die darin enthaltenen Elemente in einem separaten Diagramm, auf einer tieferen Ebene, angezeigt. Besonders bei großen Systemen wird die Übersichtlichkeit durch die Reduzierung auf das Wesentliche mit dieser Methode erheblich verbessert.


Detaillierte Ansicht der State Machine“

Wie Sie in unserem Beispiel sehen, können beide Methoden kombiniert werden um übersichtliche und nachvollziehbare Diagramme zu erstellen.

Übergänge zwischen State Machines

Beim Übergang in eine State Machine kann es gewünscht sein, dass es mehrere Eintrittspfade gibt, welche unterschiedliche Simulationsabläufe zur Folge haben. Dies ist mit dem „Initial“-Element nicht möglich. Für diesen Zweck gibt es EntryPoints, welche den Übergang von einer höher angesiedelten State Machine in eine dedizierte Sub-State Machine ermöglicht. Dafür muss in jeder Ebene (der Ausgangs-State Machine und der Sub-State Machine) jeweils der entsprechende EntryPoint als Link eingefügt werden. Dieses Vorgehen kann man auch für den Übergang zurück in die Ausgangs-State Machine verwenden. Für diesen Weg bietet Enterprise Architect die ExitPoints. Bei uns hat sich herausgestellt, dass die ExitPoints nicht wie erwartet funktionieren und die Simulation nicht mit den Folgeereignissen fortfährt. Hierfür gibt es einen einfachen Workaround, welcher lediglich in der Symbolik ersichtlich ist. Anstatt ExitPoints können für den Wechsel in eine andere oder die übergeordnete State Machine EntryPoints verwendet werden. Bei Bedarf können diese EntryPoints, zum Beispiel in ExitPoint, umbenannt werden.

Simulieren der State Machine

Um die Simulation durchzuführen wird der Simulator verwendet, welcher im Menü unter Analyzer → Simulate → Simulator auswählbar ist.

Öffnen des Simulators

Mit dem Simulator kann die State Machine für die Simulation ausgewählt, gestartet, pausiert und gestoppt werden. Zusätzlich stellt der Simulator die Vorgänge der Simulation als Text dar.


Simulationsfenster beim Öffnen


Simulation mit ausgeführten Events

Zusätzlich empfehlen wir das Simulaton Events Window anzeigen zu lassen.

Öffnen des Simulation Events Window

In dem Simulation Event Window werden wartende, verfügbare Trigger angezeigt und können aktiviert werden. Aktivierte Trigger werden aufgelistet. Zusätzlich kann die Abfolge der Trigger gespeichert und für einen automatisierten Ablauf verwendet werden.

Simulation Events Window mit verwendeten Triggern (links) und verfügbaren Triggern (rechts).

In der Simulation werden das aktuell aktive Element und die wartenden Pfade normal dargestellt und die inaktiven Elemente werden mit einem blauen Schleier überblendet.

Standby ist der aktive State, Start boxed Machine und Start detailed Machine die wartenden Trigger. Die restlichen Elemente sind „ausgeblaut“.

Die Trigger können auch durch eine weitere Aktion ausgeführt werden, indem der wartende Trigger im Diagramm per rechtem Mausklick über die Aktion „Signal Trigger in Simulation“ aktiviert wird.

Signalisieren des Triggers direkt im Diagramm

Über diesen Weg können Trigger in dem Simulation Events Window eingereiht und dann manuell oder automatisch durchgeführt werden.

Simulation Events Window mit ausgeführtem (Mainpower connect), eingereihten (Start boxed Machine und Standby) und wartenden Triggern (rechte Spalte).

 

Mit diesen Tipps können Sie eine simulierbare State Machine erzeugen, mit dem Sie Ihre Stakeholder bei der Besprechung des Systemverhaltens begeistern und das Verhalten des Systems simulieren können.

Haben sie Fragen zur Modellierung von State Machines? Gerne unterstützen wir Sie in dem Systemengineering für Ihr Projekt. Kontaktieren Sie uns.

Kontaktieren Sie uns!

Autor

  • Lars Gerboth

    Seit Juni 2020 bin ich als Entwicklungsingenieur bei den MEDtech Ingenieuren tätig und freue mich auf spannende Projekte. Hierbei bringe ich mich gerne mit meinen Fachkenntnissen und meiner Berufserfahrung, vor allem im mechanischen Bereich, ein.

Auch interessant:

MedtecLIVE 2019 – Triff den Entwickler!

ⓘ Dieses Event ist bereits vorbei. Haben Sie im Mai schon etwas vor? Gerne möchte ich Sie heute auf eine Veranstaltung hinweisen, auf der wir uns treffen können. Vom 21. bis 23. Mai 2019 findet die MedtecLIVE in Nürnberg, quasi vor unserer Haustür statt. Wir freuen uns dieses Jahr mit…
Getagged mit: , , ,