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

Lars Gerboth

01/18/2023

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.


Geschrieben von 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.


Weitere Beiträge

  • 19/03/2025
  • Allgemein, Unternehmen, Veranstaltungen

Wir freuen uns, euch zu einem exklusiven VDI-Event des Netzwerk Systems Engineering einzuladen, das bei uns im Büro stattfindet! Am Freitag, den 28. März 2025, wird sich alles um ...

Weiterlesen
  • 13/03/2025
  • Allgemein, Unternehmen

MEDtech Ingenieur verstärkt sein Führungsteam: Seit März 2025 übernimmt Daniel Saffer die Rolle des Chief Technical Officers (CTO). Mit seiner langjährigen Erfahrung in der Entwicklung sicherheitskritischer Embedded-Softwarelösungen für die ...

Weiterlesen
  • 29/01/2025
  • Allgemein, Hardware, Testen

Einleitung Um bei der EMV Prüfung für die Zulassung neuer medizintechnischer Geräte das Risiko zu reduzieren machen wir gerne Vortests mit den Geräten in der Prototypen Phase. Aktuell unterstützen ...

Weiterlesen
Cookie-Übersicht

Die Internetseiten der MEDtech Ingenieur GmbH verwenden Cookies. Cookies sind Textdateien, welche über einen Internetbrowser auf einem Computersystem abgelegt und gespeichert werden.

Zahlreiche Internetseiten und Server verwenden Cookies. Viele Cookies enthalten eine sogenannte Cookie-ID. Eine Cookie-ID ist eine eindeutige Kennung des Cookies. Sie besteht aus einer Zeichenfolge, durch welche Internetseiten und Server dem konkreten Internetbrowser zugeordnet werden können, in dem das Cookie gespeichert wurde. Dies ermöglicht es den besuchten Internetseiten und Servern, den individuellen Browser der betroffenen Person von anderen Internetbrowsern, die andere Cookies enthalten, zu unterscheiden. Ein bestimmter Internetbrowser kann über die eindeutige Cookie-ID wiedererkannt und identifiziert werden.

Durch den Einsatz von Cookies kann die MEDtech Ingenieur GmbH den Nutzern dieser Internetseite nutzerfreundlichere Services bereitstellen, die ohne die Cookie-Setzung nicht möglich wären.

Mittels eines Cookies können die Informationen und Angebote auf unserer Internetseite im Sinne des Benutzers optimiert werden. Cookies ermöglichen uns, wie bereits erwähnt, die Benutzer unserer Internetseite wiederzuerkennen. Zweck dieser Wiedererkennung ist es, den Nutzern die Verwendung unserer Internetseite zu erleichtern. Der Benutzer einer Internetseite, die Cookies verwendet, muss beispielsweise nicht bei jedem Besuch der Internetseite erneut seine Zugangsdaten eingeben, weil dies von der Internetseite und dem auf dem Computersystem des Benutzers abgelegten Cookie übernommen wird.

Die betroffene Person kann die Setzung von Cookies durch unsere Internetseite jederzeit mittels einer entsprechenden Einstellung des genutzten Internetbrowsers verhindern und damit der Setzung von Cookies dauerhaft widersprechen. Ferner können bereits gesetzte Cookies jederzeit über einen Internetbrowser oder andere Softwareprogramme gelöscht werden. Dies ist in allen gängigen Internetbrowsern möglich. Deaktiviert die betroffene Person die Setzung von Cookies in dem genutzten Internetbrowser, sind unter Umständen nicht alle Funktionen unserer Internetseite vollumfänglich nutzbar.

Weitere Informationen erhalten Sie in unserer Datenschutzerklärung.

Unbedingt notwendige Cookies

Dieses Cookie wird benötigt, um Ihre Cookie-Einstellungen zu merken und weitere Hauptfunktionen zur Verfügung zu stellen

Um Ihnen eine Auskunft über Ihre gespeicherten personenbezogenen Daten hier (https://medtech-ingenieur.de/gespeicherte-daten-2/) geben zu können, benötigen wir einen Cookie, um Sie bei der Datenabfrage identifizieren zu können. Dieser Cookie muss aus Sicherheitsgründen deshalb aktiviert sein. Ein weiterer Cookie wird gesetzt, um diesen Banner nicht erneut anzeigen zu müssen.

Cookie-Name Beschreibung
PHPSESSID Name: PHP session
Anbieter:
Eigentümer der Webseite (MEDtech Ingenieur)
Zweck:
Wir benötigt, um Sie bei der Anfrage von personenbezogenen Daten identifizieren zu können. Das Cookie wird nur gesetzt, wenn Sie eine Anfrage hier (https://medtech-ingenieur.de/gespeicherte-daten-2/) stellen.
Laufzeit: Sitzungsende
Kategorie: Unbedingt notwendige Cookies
moove_gdpr_popup Name: Cookie-Box Einstellungen
Anbieter:
Eigentümer der Webseite (MEDtech Ingenieur)
Zweck:
Wird benötigt, um Ihre Cookie-Einstellungen zu speichern, um den Cookie-Banner nicht erneut anzeigen zu müssen.
Laufzeit: 1 Jahr
Kategorie: Unbedingt notwendige Cookies
comment_author_9c90e388e3e1be4a6c594fa6ac8a3eec
comment_author_email_9c90e388e3e1be4a6c594fa6ac8a3eec
comment_author_url_9c90e388e3e1be4a6c594fa6ac8a3eec
Name: Kommentar Einstellungen
Anbieter:
Eigentümer der Webseite (MEDtech Ingenieur)
Zweck:
Cookie wird angelegt, wenn Sie ein Kommentar auf MEDtech Ingenieur veröffentlichen wollen, um Sie als Autor identifizieren und den aktuellen Status Ihres Kommentars anzeigen zu können. Das Cookie enthält den angegebenen Namen. Das Cookie wird erst gesetzt, wenn Sie der Speicherung Ihrer personenbezogenen Daten zustimmen.
Laufzeit: 1 Jahr
Kategorie: Unbedingt notwendige Cookies
rmp-rate Name: RMP Rate
Anbieter: Eigentümer der Webseite (MEDtech Ingenieur)
Zweck: Cookie wird angelegt, wenn Sie eine Bewertung eines Blogbeitrags mithilfe des Sternebewertungssystems abgeben. Ihnen wird eine anonymisierte ID zugewiesen, um zu erkennen, ob Sie einen Artikel bereits bewertet haben oder nicht. Das Cookie wird nur verwendet, um zu verhindern, dass mehrfache Bewertung abgegeben werden und erst gesetzt, wenn Sie auf einen Stern klicken.
Laufzeit: 1 Jahr
Kategorie: Unbedingt notwendige Cookies
medtech-download-page Name: Download Page
Anbieter: Eigentümer der Webseite (MEDtech Ingenieur)
Zweck: Cookie wird angelegt, wenn Sie den Landing-Page Prozess erfolgreich durchlaufen haben. Dies geschieht nur, wenn Sie einen Content-Download von unserer Website anstreben.
Laufzeit: 1/2 Jahr
Kategorie: Unbedingt notwendige Cookies