Heim

Zustandsdiagramm (UML)

Die Artikel Zustandsdiagramm (UML), Zustandsübergangsdiagramm und Zustandsautomat (UML) überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Bitte äußere dich in der Diskussion über diese Überschneidungen, bevor du diesen Baustein entfernst. ReqEngineer Au weia!!! 14:14, 6. Jan. 2007 (CET)
Strukturdiagramme der UML
Klassendiagramm
Komponentendiagramm
Kompositionsstrukturdiagramm
Objektdiagramm
Paketdiagramm
Verteilungsdiagramm
Verhaltensdiagramme der UML
Aktivitätsdiagramm
Anwendungsfalldiagramm
Interaktionsübersichtsdiagramm
Kommunikationsdiagramm
Sequenzdiagramm
Zeitverlaufsdiagramm
Zustandsdiagramm

Das Zustandsdiagramm (engl. state diagram) der UML ist eines der dreizehn Diagrammarten dieser Modellierungssprache für Software und andere Systeme. Es stellt einen endlichen Automaten in einer UML-Sonderform grafisch dar und wird benutzt, um entweder das Verhalten eines Systems oder die zulässige Nutzung der Schnittstelle eines Systems zu spezifizieren.

Die in der UML verwendete Diagrammform ist eine Variante des Zustandsübergangsdiagramm. Neben dieser Diagrammform gibt es in der Informatik und der Telekommunikation eine ganze Reihe weiterer Formen, die sich nicht grundsätzlich, wohl aber in der Ausdrucksmächtigkeit unterscheiden.

Inhaltsverzeichnis

Beschreibung

Ein Zustandsdiagramm zeigt eine Übersicht der Zustände, die der dargestellte Zustandsautomat (z. B. ein einzelnes Objekt oder auch ein (Teil-)System) zur Laufzeit annehmen kann und gibt an, aufgrund welcher Ereignisse Zustandsänderungen bzw. -übergänge stattfinden. Damit beschreibt ein Zustandsdiagramm eine hypothetische Maschine (endlicher Automat), die sich zu jedem Zeitpunkt in einer Menge endlicher Zustände befindet.

Die Zustände in einem Zustandsdiagramm werden durch Rechtecke mit abgerundeten Ecken (in anderen Diagrammformen außerhalb von UML häufig auch Kreise, Ellipsen oder einfache Rechtecke) dargestellt. Die möglichen Zustandsübergänge werden durch Pfeile zwischen den Zuständen symbolisiert. Sie sind mit den Ereignissen beschriftet, die zu dem jeweiligen Zustandsübergang führen.

Elemente

Der in einem Diagramm dargestellte Zustandsautomat besteht aus Knoten (engl. vertex) und (Zustands-)Übergängen (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

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:

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

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 heißt 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

Graphische Symbole für Pseudo-Zustände

Die UML2 kennt folgende Pseudo-Zustände:


Beispiele für Zustandsdiagramme

Verhaltenszustandsautomat

Beispiel eines Verhaltenszustandsautomaten

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

Protokollzustandsautomat

Beispiel eines Protokollzustandsautomaten

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

Siehe auch

Literatur