Zustandsdiagramm
Zweck
Zustandsautomaten (state machines) beschreiben das Verhalten von Classifiern (Elementen) während ihres Lebenszyklus. Sie stellen die möglichen Zustände eines Classifiers und Zustandsübergänge dar. Cassifier können sein: Klassen, Komponenten, Systeme, u. a..
Die UML 2.0 unterscheidet behavioral state machines, die Verhalten von Instanzen einer Klasse, Systemen oder Systemteilen beschreiben, und protocol state machines, die Protokolle, die von einem Systemelement realisiert werden, modellieren.
Notation
Da die Notationselemente für Zustandsautomaten komplex sind, werden sie hier in zwei Bereichen behandelt: die grundlegenden Konzepte der Zustandsautomaten werden im Abschnitt Notation - Konzept
beschrieben, die weiterführenden Konzepte werden unter Notation - erweitert
dargestellt.
Notation - Konzept
Anfangs-, Endzustand (initial state, final state)
geben den Beginn und Ende des Lebenszyklus eines modellierten Elementes an. Wird ein Objekt erzeugt, befindet es sich im Anfangszustand, wird es gelöscht, befindet es sich im Endzustand.
Zustand (state)
Elemente können im Laufe ihrer Existenz eine endliche Anzahl Zustände einnehmen. Ein Zustand kann durch eine waagrechte Linie unterteilt werden. Unterhalb der Linie kann Verhalten eines Objekts in dem Zustand angegeben werden. Die UML definiert folgende Arten von Verhalten: entry
, exit
und do
. Das entry-Verhalten wird beim Eintritt in den Zustand ausgeführt, das exit-Verhalten vor Verlassen des Zustands. Do-Aktivitäten werden ausgeführt, während das Objekt sich in dem Zustand befindet.
Zustandsübergang (Transition)
Eine Transition ist ein Zustandsübergang von einem Quellzustand zu einem Zielzustand. Die Beschriftung gibt das auslösende Ereignis (Trigger) an, die Bedingung, die erfüllt sein muß (guard) und die Aktivität (Operation), die beim Übergang ausgeführt wird an. Die Beschreibungselemente können beliebig kombiniert werden.
Einfacher Zustandsautomat - Tür
Diese Abbildung stellt einen einfachen Zustandsautomat einer Tür dar. Die Tür kann die beiden Zustände offen und geschlossen annehmen. Sie reagiert auf die Ereignisse schliessen und öffnen. In dem Zustand offen kann jedoch nur das Ereignis schliessen angewandt werden, in dem Zustand geschlossen kann nur das Ereignis öffnen angewandt werden.
Beispiel Zustandsautomat Loginmaske
Dieses Beispiel modelliert die Loginmaske eines Rechners. Sie hat die Zustände "UserNameEingabe" und "PasswortEingabe". In dem Zustand "UserNameEingabe" führt sie die Aktivität "ZeichenLesen" aus. Ist die Bedingung "[Cursor in Feld Passwort]" erfüllt, so wechselt sie zu dem Zustand "PasswortEingabe". Sobald die Maske den Zustand betritt führt sie die entry-Aktivität "Echo aus" aus, sie schaltet das Echo aus und zeigt das Passwort nicht auf dem Bildschirm an. Danach liest sie mit der Aktivität "ZeichenLesen" das Passwort ein und schaltet bei Verlassen des Zustands mit der exit-Aktivität "Echo an" das Bildschirmecho wieder ein.
Notation - erweitert
Region (Region)
Regionen stellen parallele Zustände dar. Sie können in zusammengesetzten Zuständen und in state machine Diagrammen verwendet werden. Regionen können einen Namen haben. Die Regionen in einem Zustand werden durch eine gestrichelte Linie voneinander abgegrenzt. Regionen können Zustände und Transitionen enthalten.
Pseudozustände sind Knoten in einem Zustandsdiagramm, die es erlauben komplexe Zusammenhänge zwischen Zuständen darzustellen (z. B. Verzweigungen, Parallelität usw.). Pseudozuständen werden keine Aktivitäten zugeordnet.
Entscheidung
Eine Entscheidung beschreibt eine Alternative. Entweder wird die nach links oder die nach rechts führende Transition ausgeführt.
Kreuzung
Eine Kreuzung verbindet mehrere Transitionen, ohne zwischengeschaltete Zustände.
Terminator
Ein Terminator drückt aus, dass die State Machine beendet wird; d. h. das Objekt, auf das die State Machine sich bezieht wird zerstört. Es werden keine exit-Aktivitäten ausgeführt.
Eintrittspunkt
Eintrittspunkt fasst mehrere Transitionen von außen zu einem Zustand innerhalb eines zusammengesetzen Zustands zusammen.
Austrittspunkt
wie Eintrittspunkt, jedoch in die andere Richtung.
Gabelung
teilt eine eingehende Transition in mehrere ausgehende parallele Transitionen auf.
Vereinigung
wird verwendet, um die durch eine Gabelung aufgeteilten parallelen Zweige wieder zusammenzuführen.
Zusammengesetzter Zustand (composite state)
Ein zusammengesetzter Zustand ist ein Zustand, in dem Unterzustände möglich sind. Das Beispiel stellt die Zustände einer abschließbaren Tür dar. Die Tür kann die Zustände zugeschlossen und aufgeschlossen haben. Nur in dem Zustand aufgeschlossen kann sie die Unterzustände offen und geschlossen haben. Ist das untergeordnete Zustandsdiagramm zu groß um im Zustand dargestellt zu werden, kann es auch in einem Verfeinerungsdiagramm modelliert werden.
Anwendungsbereich
Zustandsdiagramme werden häufig im Bereich Embedded Systems eingesetzt, sind aber auch in anderen Bereichen verwendbar. Sie werden nur für Objekte mit interessantem Lebenszyklus modelliert. Zustandsdiagramme tragen zum besseren Verständnis des Verhaltens von Classifiern bei.
Zusammenhang
Ein Zustandsdiagramm kann sich auf eine Klasse des Klassendiagramms beziehen. Es kann aber auch die Zustände von komplexeren Modellelementen (Subsystemen) darstellen.