Fachbereich Informatik
Deutsch
English

Fachbereich Informatik


Menu Suche Login Home

Zustandsdiagramm

29.09.2010

Zustandsdiagramm

Zweck

Zustandsautomaten (state machines) sind Diagramme zur Spezifikation des Verhaltens von Classifiern (Elementen). Cassifier können sein: Klassen, Komponenten, Systeme, u. a..

Zustandsautomaten beschreiben das Verhalten der Elemente während ihres Lebens­zyklus durch Darstellung der möglichen Zustände und Zustandsübergänge. 

Die UML 2.0 unterscheidet behavioral state machines, die Verhalten von Instanzen einer Klasse, Systemen oder Sys­temteilen beschreiben, und protocol state machines, die Protokolle, die von einem System­element realisiert werden, modellieren. Zustandsautomaten werden häufig zur Dar­stellung des Lebenszyklus von Objekten benutzt

Notation

Da die Notationselemente für Zustandsautomaten sehr komplex sein können, werden sie hier in zwei Bereichen behandelt: die grundlegenden Konzepte der Zu­standsautomaten werden im Abschnitt Notation - Konzept beschrieben, die wei­terführenden Konzepte werden unter Notation - erweitert dargestellt.

Notation - Konzept

;

Symbol

Beschreibung

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 end­liche Anzahl Zustände einnehmen. Der Zustand wird als Rechteck mit abgerundeten Ecken darge­stellt. Zustände können einen Namen erhalten. Ein Zustand kann durch eine waagrechte Linie unter­teilt werden. Unterhalb der Linie können Aktivitä­ten und interne Transitionen angegeben werden. Diese werden in dem Zustand ausgeführt. Die UML definiert folgende internen Aktivitäten: entry, exit und do. Die entry-Aktivität wird beim Eintritt in den Zustand ausgeführt, die exit-Aktivität vor Verlassen des Zustands. Do-Aktivitäten werden zwischen entry und exit-Aktivität ausgeführt und können länger andauern. Interne Transitionen werden intern ausgeführt, führen jedoch nicht zu einem Zustandsübergang. Es kann ein Auslöser (Trigger) angegeben werden, eine Bedingung (guard), die erfüllte sein muß und eine Aktivität, die ausgeführt wird.

Zustandsübergang (Transition

Eine Transition ist ein Zustandsübergang von einem Quellzustand zu einem Zielzustand. Die Be­schriftung gibt das auslösende Ereignis (Trigger) an, die Be­dingung, die erfüllt sein muß (guard) und die Ak­tivität (Operation), die beim Übergang ausgeführt wird an. Die Beschreibungselemente sind optional. Sie können beliebig kombiniert werden.

Zustand (State)

Der Zustand (state) eines Objekts wird durch die Attributwerte bzw. Daten und die jeweiligen Verbindungen zu anderen Objekten bestimmt [Balzert, 1999].

Die UML 2.0 unterscheidet drei Zustandstypen:

  • einfacher Zustand
  • zusammengesetzter Zustand - composite state
  • Unterzustandsautomatenzustand - submachine state

 

Einfacher Zustand (simple state)

Ein einfacher Zustand hat keine Unterzustände (Regionen oder submachine state machine). Ein einfacher Zustand kann entry, exit und do-Aktivitäten enthalten und interne Transitionen. Nach Erreichen des Zustands wird sofort die entry-Aktivität ausgeführt. Vor Verlassen des Zustands wird die exit-Aktivität ausgeführt. Die do-Aktivität wird nach Beendigung der entry-Aktivität ausgeführt.

Zustandsübergang (Transition)

Eine Transition wird durch einen Auslöser (Trigger) verursacht. Der Trigger kann intern sein oder extern; er kann von dem Objekt kommen, auf das die state machine sich bezieht, oder von einem anderen Objekt. Für einen Zustandsübergang kann eine Bedingung (guard) angegeben werden, die erfüllt sein muß, damit die Transiti­on ausgeführt wird. Bei einer Transition kann ein Objekt eine Aktivität ausführen, die zu dem Aufruf einer Methode führt.

Einfacher Zustandsautomat

Zustandsautomaten beschreiben den Lebenszyklus von Objekten, können sich aber auch auf komplexere Elemente beziehen, wie z. B. Komponenten, Subsysteme oder Use Cases. Sie stellen die Zustände dar, die Objekte, Komponenten usw. im Laufe ihrer Existenz annehmen können und sie geben die Zustandsübergänge an, die möglich sind. Ein Zustandsautomat gibt auch an, in welchem Zustand ein Objekt auf welche Ereignisse reagiert.

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 Er­eignisse 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.

 

Dieses Beispiel modelliert eine 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 Pass­wort]" erfüllt, so wechselt sie zu dem Zustand "PasswortEingabe". Sobald die Mas­ke 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 Zu­stands mit der exit-Aktivität "Echo an" das Bildschirmecho wieder ein.

Symbol

Beschreibung

Region (Region)

Regionen stellen parallele Abläufe oder 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 Zusammen­hä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

 

verbindet mehrere Transitionen, ohne zwischengeschaltete Zustände miteinander.

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

 

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.

Flache Historie

Historienzustände bezeichnen bei zusammengesetzten Zuständen und Unterzustandsautomaten den Zustand der bei Betreten zuerst aktiv sein soll. Z. B. ein Desktop, der sich nach Wiedereinloggen an die SW erinnert, die zuletzt lief. Die flache Historie merkt sich den letzten aktiven Unterzustand eines zusammengesetzten Zustands.

Tiefe Historie

 

merkt sich den letzten aktiven Unterzustand eines in einem zusammengesetzten Zustand enthaltenen Zustand.

 

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 aufge­schlossen kann sie die Unterzustände offen und geschlossen haben. Ist das unterge­ordnete Zustandsdiagramm zu groß um im Zustand dargestellt zu werden, kann es auch in einem Verfeinerungsdiagramm modelliert werden.

Unterzustandsautomatenzustand (submachine state)

Der Unterzustandsautomatenzustand ist ein gutes Beispiel für unverständliche Wortungetüme, die die deutsche Sprache hervorbringen kann. Der Submachine State bezeichnet einen Zustand, der Unterzustände enthält, die in einem untergeord­neten Zustandsdiagramm verfeinert sind. Im Zustandssymbol wird der Zustands­namen angegeben und mit Doppelpunkt getrennt der Zustandsautomat, der ihn verfeinert.

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. Die Nachrichten auf die eine Klasse mit einem Zustandsübergang rea­giert, werden von anderen Klassen oder Akteuren gesendet.

Hinweise

Zustandsautomaten sollten nur bei komplexen Objekten verwendet werden. Ein Objekt ist dann komplex, wenn es viele Methoden oder viele Attribute hat. Bei einfach strukturierten Objekten bringt der Einsatz von Zustandsautomaten keine zu­sätzlichen Erkenntnisse. Jeder Zustand und Pseudozustand, außer dem Anfangs- und Endzustand, sollte mindestens einen ein- und eine ausfließende Transition haben.

Style Guide

Zustandsdiagramme sollten so gestaltet werden, dass sie von links oben nach rechts unten lesbar sind. Zustand sollte aus- und einfliessende Pfeile haben, jeder Zustand muß erreichbar sein und wieder verlassen werden können.


Neu in UML 2.0

Der Name State Machine Diagram ist in der UML 2.0 neu. In früheren Versionen der UML wurden dieser Diagrammtyp Zustandsübergangsdiagramme, State Dia­gram oder State Transition Diagram genannt. Diese Bezeichnungen werden heute immer noch verwendet.

Beispiel


ST-Mensa

letzte Aktualisierung: 20.06.2013 - Verantwortung: Dipl. Ing. Michael Guist