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