Otto-von-Guericke-Universitdt Magdeburg UML UML-Tutorial

Zustandsdiagramm

verwandte Begriffe: State Diagram, State machine, Zustandübergangsdiagramm, Endlicher Automat

Definition

Ein Objekt kann in seinem Leben verschiedenartige Zustände annehmen. Mit Hilfe des Zustandsdiagrammes visualisiert man diese, sowie Funktionen, die zu Zustandsänderungen des Objektes führen.

Beschreibung

Ein Zustandsdiagramm beschreibt eine hyphotetische Maschine, die sich zu jedem Zeitpunkt in einer Menge endlicher Zustände befindet. Sie besteht aus:

  • einem Anfangszustand
  • einer endlichen Menge von Zuständen
  • einer endlichen Menge von Ereignissen
  • einer endlichen Anzahl von Transitionen, die den Übergang des Objektes von einem zum nächsten Zustand beschreiben
  • einem oder mehrerer Endzustände
Notation

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.

Notation: Zustandsdiagramm

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

Notation: Zustand

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.

Notation: Start- und EndZustand

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.

Notation: Unterzustand

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)

Notation: Ereignis Transition


Zurueck Inhalt Vor