verwandte Begriffe: State Diagram, State machine, Zustandübergangsdiagramm, Endlicher Automat
Ein Zustandsdiagramm beschreibt eine hyphotetische Maschine,
die sich zu jedem Zeitpunkt in einer Menge endlicher Zustände befindet.
Sie besteht aus:
Im Zustandsdiagramm werden die Zustände als abgerundete Rechtecke verbunden durch Pfeile, auf denen die Transitionen stehen, visualisiert. Startzustand ist ein gefüllter Kreis, die Endzustände sind leere Kreise mit einem kleineren gefüllten in der Mitte.
Zustand
verwandte Begriffe: State, Startzustand, Endzustand
Definition
Ein Zustand ist die endliche nicht-leere Menge von möglichen Attributwerten, die die Objekte einer Klasse annehmen können.
Er gehört genau zu einer Klasse.
Die Zusammenhaenge zwischen den Zuständen eines Objektes werden in einem
Zustandsdiagramm visualisiert.
Beschreibung
Ein Zustand wird als Zeitspanne zwischen zwei Ereignissen angesehen. Eine Änderung von Attributwerten eines Objektes, die das Verhalten des Objektes
maßgeblich verändern heißt Zustandsänderung.
Zustände sind durch einen für sie eindeutigen Namen definiert. Gleichnamige Zustände
innerhalb eines Zustandsdiagrammes beschreiben den selben Zustand eines Objektes.
Zusätzlich können anonyme Zustände definiert werden, zwei namenlose Zustände in
einem Diagramm beschreiben grundsätzlich verschiedene Zustände eines Objektes.
Start- und Endzustand eines Objektes sind als besondere Zustandstypen anzusehen,
da zu einem Startzustand kein Übergang stattfinden und dem Endzustand eines Objektes
keine Zustandsänderung folgen kann.
Ein Zustand ist durch eine endliche Menge von Zustandsvariablen gekennzeichnet.
Diese ist eine Untermenge der Attribute der Klasse des Objektes, zu dem der Zustand gehört.
In einem Zustand werden nur die, zur Beschreibung und eindeutigen Identifikation
des Zustandes notwendigen Zustandsvariablen, aufgeführt.
Eine Klasse muss nicht notwendigerweise Zustände beeinhalten, sie muß über entsprechendes
signifikantes Verhalten verfügen. Die Modellierung von Zuständen erübrigt sich,
sobald alle Operationen eines Objektes einer Klasse unabhängig von seinem inneren
Zustand in beliebiger Reihenfolge durchgeführt werden können.
Ein Ereignis löst den Übergang von einem Zustand eines Objektes in den nächsten
Zustand - die Transition aus. Es ist definiert durch einen Namen und einer Liste
möglicher Ereignisargumente.
Ein Zustand kann Bedingungen mit dem Ereignis verbinden, die erfüllt sein müssen,
um den den Folgezustand zu erreichen, bzw. um zu entscheiden, welchen Folgezustand
das Objekt einnimmt.
Durch Ereignisse können Aktionen innerhalb eines Zustandes eines Objektes ausgelöst werden.
Auslöser solcher Aktionen sind:
- entry - löst eine Aktion automatisch bei Erreichen eines Zustandes aus
- exit - löst eine Aktion automatisch bei Verlassen eines Zustandes aus
- do - löst eine Aktion automatisch aus, solange der Zustand aktiv ist, d.h. kein anderer Zustand durch das Objekt erreicht wird
Notation
Zustände werden durch Rechtecke mit abgerundeten Ecken visualisiert.
Sie können in bis zu drei Bereiche geteilt werden. Wobei der obere Bereich den Namen des Zustandes beeinhalten kann. Der mittlere Bereich enthält die Zustandsvariablen. Da sie Attribute der Klasse sind, werden sie folgendermaßen notiert:
variable : Klasse = Initialwert { Merkmal } { Zusicherung }
Im unteren Bereich werden mögliche innere Ereignisse, Bedingungen und daraus
resultierende Operationen definiert. Für sie gilt folgendes Format:
Ereignis / Aktionsbeschreibung
Die Aktionsbeschreibung kann ein Operationsname sein oder frei formuliert werden.
Sie kann Zustandsvariablen, Attribute einer Klasse oder Parameter der eingehenden
Transition enthalten.
ÿ

Ein Startzustand wird als gefüllter Kreis visualisiert, während man einen Endzustand
als nicht gefüllten Kreis, in dem sich ein kleinerer voller Kreis befindet, darstellt.

Unterzustand
Definition
Zustände können in verschiedene sequentielle oder parallele Unterzustände
aufgesplittet werden.
Beschreibung
Ist es nötig, Ereignisse innerhalb eines Zustandes eines Objektes näher zu untersuchen, lässt sich dieser durch die Definition von Unterzuständen aufgliedern.
Notation
Unterzustände werden in die eigentlichen Zuständen eingebettet.
Die Notation von Unterzustände ist gleich denen von Zuständen.
Parallele, konkurrierende Unterzustände werden durch gestrichelte Linien in verschiedene Abschnitte unterteilt.

Ereignis, Transition
verwandte Begriffe: Event, Zustandsübergang
Definition
Eine Transition ist ein Zustandsübergang eines Objektes, der durch ein wesentliches Vorkommnis - ein Ereignis ausgelöst wird.
Beschreibung
Ein Ereignis kann eintreten wenn, eine oder mehrere für eine Transition notwendige Bedingung erfüllt ist oder ein Objekt eine ereignisauslösende Nachricht erhalten hat.
Ein Objekt kann verschiedene Zustände annehmen. Um die Ursachen (Ereignisse) für
Zustandsänderungen (Transitionen) zu verdeutlichen kann ein Zustandsdiagramm
verwendet werden. Hier wird dargestellt, wann ein Objekt Ereignisse erhalten darf
und welche Operationen diese auslösen, bzw. welche Zustandsänderungen diese bewirken.
Transitionen werden in der Regel durch, zum Teil an Bedingungen geknüpfte, Ereignisse
ausgelöst. Die Bedingungen müssen dann auf jeden Fall erfüllt sein, bevor der
Zustandübergang stattfinden kann.
Notation
Ein Zustandübergang als Folge eines Ereignisses wird als Pfeil zwischen zwei Zuständen
symbolisiert. Der Pfeil kann auch zum Ausgangszustand zurückführen.
Die Transitionsbeschreibung wird in folgender Form auf dem Pfeil notiert:
ereignis(argumente) [bedingung] / operation(argumente)^zielobjekte.gesendetesEreignis(argumente)
