article

Ein Zustandsautomat (engl. state machine) ist ein Modellelement in der Unified Modeling Language (UML), einer Modellierungssprache für Software und andere Systeme.

Zustandsautomaten werden eingesetzt, um entweder das Verhalten eines Systems oder die zulässige Nutzung der Schnittstelle eines Systems zu spezifizieren. Sie entsprechen weitgehend den aus der theoretischen Informatik bekannten endlichen Automaten.

Zustandsautomaten werden in Zustandsdiagrammen dargestellt.

Elemente eines Zustandsautomaten


Ein Zustandsautomat besteht aus Knoten (engl. vertex) und Transitionen (engl. transitions), die einen Quell- und einen Zielknoten verbinden. Jeder Knoten ist entweder ein Zustand (engl. state) oder aber ein so genannter Pseudo-Zustand (engl. pseudo state).

Zustände

Statemachine-2.png Ein Zustand modelliert eine Situation, in der eine bestimmte unveränderliche Bedingung gilt. Meistens ist diese Invariante nur implizit gegeben, will man sie explizit formulieren, kann man sie als Einschränkung dem Zustand zuordnen.

Dem Zustand können drei Verhaltensspezifikationen, zum Beispiel in Form einer Aktivität oder einer Interaktion, zugeordnet werden:

  • ein Verhalten, das ausgeführt wird, wenn der Zustandsautomat in den Zustand eintritt (engl. entry behaviour)
  • ein Verhalten, das ausgeführt wird, wenn der Zustandsautomat den Zustand verlässt (engl. exit behaviour)
  • ein Verhalten, das ausgeführt wird, während sich der Zustandsautomat im Zustand befindet (entl. doActivity)

Graphisch wird ein Zustand meistens als Rechteck mit abgerundeten Ecken dargestellt, leicht unterschiedliche Darstellungsformen sind aber auch möglich, siehe Beispiele in der Abbildung rechts.

Transitionen

Statemachine-3.png Eine Transition verbindet einen Quell- und einen Zielknoten. Der Transition kann eine Verhaltensspezifikationen zugeordnet sein, die das Verhalten beschreibt, das ausgeführt wird, wenn die Transition durchlaufen wird. Dieses Verhalten heisst Effekt (engl. effect). Ein Wächterausdruck (engl. guard) kann die Transition schützen: die Transition kann nur durchlaufen werden, wenn der Wächterausdruck wahr ist.

Pseudo-Zustände

Statemachine-4.png Die UML2 kennt folgende Pseudo-Zustände:
  • der Startzustand (engl. initial)
  • der Endzustand (engl. terminate)
  • die Vereinigung (engl. join)
  • die Gabelung (engl. fork)
  • die Kreuzung (engl. junction)
  • die Entscheidung (engl. choice)
  • der Eintrittspunkt (engl. entry point)
  • der Austrittspunkt (engl. exit point)
  • die tiefe Historie (engl. deep history)
  • die flache Historie (engl. shallow history)


Arten von Zustandsautomaten


Verhaltenszustandsautomat

Statemachine-5.png Ein Verhaltenszustandsautomat (engl. behavioral state machine) modelliert das Verhalten eines Modellelements. Der Zustandsautomat im der Abbildung links spezifiziert zum Beispiel das Verhalten einer Waschmaschine.

Protokollzustandsautomat

Statemachine-6.png Ein Protokollzustandsautomat (engl. protocol state machine) spezifiziert die zulässige Nutzung der Verhaltensmerkmale eines Classifiers.

In der Abbildung links ist zum Beispiel ein Web Service spezifiziert, über den Flüge reserviert werden können. Der zugeordnete Protokollzustandsautomat spezifiziert, in welcher Reihenfolge die Operationen des Web Services aufzurufen sind. Aus der Spezifikation geht zum Beispiel hervor, dass ein Flug nur gebucht werden kann, wenn er zuvor erfolgreich reserviert wurde oder dass ein einmal gebuchter Flug nicht mehr gecancelt werden kann.

Literatur


Harel, D. Statecharts: A Visual Formalism for Complex Systems Sci. Comput. Programming 8 (1987), 231-274 PDF

UML

 

This article is licensed under the GNU Free Documentation License. It uses material from the "Zustandsautomat (UML)".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld