Zustandsdiagramme
state diagram, state machine diagram oder Zustandsübergangsdiagramm
Grundlagen
Ein Zustandsdiagramm visualisiert eine Folge von Zuständen, die ein Objekt im Lebenszyklus einnehmen kann. Es wird benutzt, um das Verhalten eines Systems, eines Teilsystems, einer Komponente oder einer Klasse zu beschreiben. Auch die Verwendung von Schnittstellen eines Systems lässt sich durch Zustandsdiagramme spezifizieren. Besonderes Augenmerk wird auf die Übergänge zwischen verschiedenen Zuständen des Objekts, die auslösenden Aktionen und die Eigenschaften des Objekts, die es vor dem Zustandswechsel besitzt oder besitzen muss, gelegt.
Zustandsdiagramme sind ein sehr gutes Instrument zur Beschreibung von Systemen und ihrem möglichen Verhalten. Ein Zustandsdiagramm zeigt eine Folge von Zuständen eines Objekts und visualisiert, durch welche Aktionen Zustandswechsel stattfinden. Damit beschreibt ein Zustandsdiagramm einen endlichen Automaten, der sich zu jedem Zeitpunkt in einer Anzahl endlicher Zustände befindet. Ein Automat ist endlich, wenn die Menge der Zustände, die er annehmen kann, endlich ist. Dabei speichert der Automat die Zustände, die vom Systemstart bis zum aktuellen Zeitpunkt durchlaufen wurden. Ein Zustandswechsel zeigt eine Änderung an und wird durch logische Bedingungen beschrieben. Nur wenn diese erfüllt sind, wird der Zustandsübergang ausgelöst.
Zustände
Ein einfacher Zustand hat keine Unterzustände und kann verschiedene Aktivitäten und Transitionen umfassen. Grundsätzlich müssen bei der Modellierung von Objekten in Zustandsdiagrammen folgende Voraussetzungen erfüllt werden:
- Das Objekt befindet sich immer in genau einem der definierten Zustände.
- Das Objekt befindet sich nie in keinem der definierten Zustände.
- Das Objekt befindet sich nie gleichzeitig in mehreren Zuständen.
Transition
Zustandsübergänge von einem Zustand zum nächsten werden als Transition bezeichnet. Sie werden durch Ereignisse ausgelöst. Transitionen verbinden zwei Zustände, also einen Quell- und einen Zielknoten. Der Transition kann eine Verhaltensspezifikation zugeordnet sein, die das Verhalten beschreiben, das zum Zustandswechsel führt. Das ausgelöste Verhalten wird als Effekt bezeichnet. Zusätzlich gibt es Wächterausdrücke, die dafür sorgen, dass Transitionen nur durchlaufen werden, wenn der Wächterausdruck wahr ist.
Ereignisse
Ereignisse lösen Transitionen aus. Sie bestehen aus einem Namen und den zugeordneten Argumenten. Ein Zustand kann Bedingungen an ein Ereignis knüpfen, die erfüllt sein müssen bevor ein spezifischer Zustand durch ein Ereignis eingenommen wird. Für ein Ereignis bestehen grundsätzlich drei mögliche Verhaltensweisen:
- ein Verhalten, das ausgeführt wird, wenn der Zustandsautomat in den Zustand eintritt (engl. entry behaviour)
- ein Verhalten, das ausgeführt wird, wenn der Zustandsautomat den Zustand verlässt (engl. exit behaviour)
- ein Verhalten, das ausgeführt wird, solange der Zustand nicht gewechselt wird (engl. do activity)
Zustandsdiagramm für Incident-Ticket
Für ein Incident-Tickets wird folgender Lebenszyklus definiert:
Abbildung Zustandsdiagramm für Incident-Ticket - State-Diagram-Incident-Ticket.drawio (Quelle = platinus)