Ein Zustandsdiagramm besteht aus:

  • einer endlichen Menge von Zuständen
  • einer endlichen Menge von Ereignissen
  • Transitionen, die den Übergang von einem Zustand in den nächsten beschreiben
  • einem Anfangszustand
  • einem Endzustand oder mehreren Endzuständen

Zustände (States)


Ein Zustand ist eine Kombination von möglichen Attributwerten, die Objekte einer Klasse haben können. Ein Zustand hat folgende Merkmale:

  • Ein Zustand hat einen eindeutigen Namen
  • Zwei Zustände mit dem selben Namen sind identisch
  • Ein Zustand ohne Namen ist ein anonymer Zustand
  • Anonyme Zustände sind grundsätzlich voneinander verschieden
  • Jeder Zustand wird durch die Werte einer oder auch mehrerer Zustandsvariablen definiert
  • Ein Objekt kann von einem in einen anderen zustand wechseln. Diese Zustandsübergänge werden durch Ereignisse ausgelöst
  • Ein Ereignis wird durch einen Namen und einer Liste von erlaubter Argumenten dargestellt.

Notation

Basic Zustand

Zustand mit Aktion bei Ereignis

Zustand mit Aktion bei Ereignis mit Guard(Bedignung)

Arten von Aktionen in Zuständen

Anonymer Zustand

Ereignisse (Transitions)


Folgende Merkmale beschreiben eine Transition:

  • Zustandsübergänge werden durch Transitions ausgelöst.
  • Transitions werden als Pfeile zwischen zwei Zuständen dargestellt.
  • Die Transitionsbeschriftung wird auf den Pfeil geschrieben.
  • Transitions können mit Bedingungen versehen werden.

Notation

Arten von Transitions

CallEvent

SignalEvent

ChangeEvent

TimeEvent

Besondere Zustände


Das sind Steuerungselemente, keine echten Zustände. Die wichtigsten sind:

  • Startzustand
  • Terminator
  • Endzustand
  • Austrittspunkt
    • Kreis mit X darin am Übergang zwischen Transition und Zustand
    • Bedeutet was genau?
  • Eintrittspunkt
    • Ein leerer Kreis am Übergang von Transition zu Zustand
    • Bedeutet was genau?

Kreuzung (Fork)


  • Eine Kreuzung prüft seine Entscheidung im von der Kreuzung aufgerufenen Zustand.
  • Die Abfolge ist im Zustandsdiagramm statisch festgelegt.
  • Es werden immer alle Pfade ausgeführt Im Beispiel wird in Arbeit gewechselt

Vorteil:

Entscheidung (Decision)


  • Eine Entscheidung prüft seine Entscheidung nach dem Zustand.
  • Entscheidet während der Laufzeit des Programmes in welchen Zustand gewechselt wird.
  • Nur Pfade deren Guard true ist werden ausgeführt Im Beispiel wird in Entspannung gewechselt