Zustandsautomat (UML)

Zustandsautomat (UML)
Strukturdiagramme der UML
Klassendiagramm
Komponentendiagramm
Kompositionsstrukturdiagramm
Objektdiagramm
Paketdiagramm
Verteilungsdiagramm
Verhaltensdiagramme der UML
Aktivitätsdiagramm
Anwendungsfalldiagramm
Interaktionsübersichtsdiagramm
Kommunikationsdiagramm
Sequenzdiagramm
Zeitverlaufsdiagramm
Zustandsdiagramm

Das Zustandsdiagramm (englisch state diagram) der UML ist eine 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 – beispielsweise 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:

  • 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 (engl. 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

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:

  • 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 flache Historie (engl. shallow history)
  • die tiefe Historie (engl. deep history)


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

Weblinks

Literatur

  • Christoph Kecher: UML 2.0 – Das umfassende Handbuch. Galileo Computing, 2006, ISBN 3-89842-738-2. 
  • Heide Balzert: Lehrbuch der Objektmodellierung – Analyse und Entwurf mit der UML 2. Elsevier Spektrum Akademischer Verlag, 2005, ISBN 3-8274-1162-9. 
  • David Harel: Statecharts: A Visual Formalism for Complex Systems. In: Science of Computer Programming. 8, 1984 (87), S. 231–274 (PDF, 1.9MB). 

Wikimedia Foundation.

Игры ⚽ Нужна курсовая?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • UML — In diesem Artikel oder Abschnitt fehlen folgende wichtige Informationen: Kritik (vgl. engl. Artikel); Bedeutung der UML; aktueller Stand (November 2007 wurde Version 2.1.2 vorgelegt, wie wurde sie aufgenommen?) Du kannst Wikipedia helfen, indem… …   Deutsch Wikipedia

  • Zustandsdiagramm (UML) — Strukturdiagramme der UML Klassendiagramm Komponentendiagramm Kompositionsstrukturdiagramm Objektdiagramm Paketdiagramm Profildiagramm Verteilungsdiagramm Verhaltensdiagramme der UML …   Deutsch Wikipedia

  • Classifier (UML) — Ein Classifier (oder Klassifizierer) (engl. classifier) ist eine Metaklasse in der Unified Modeling Language (UML), einer Sprache für die Modellierung der Strukturen und des Verhaltens von Software und anderen Systemen. Ein Classifier innerhalb… …   Deutsch Wikipedia

  • Verhalten (UML) — Verhalten (engl. Behavior) ist in der Unified Modeling Language (UML), einer Modellierungssprache für Software und andere Systeme, sowohl eine Metaklasse als auch ein Sammelbegriff für die dynamischen Aspekte eines modellierten Systems. Um diese… …   Deutsch Wikipedia

  • Objektfluss (UML) — Ein Objektfluss (engl. ObjectFlow) ist ein Modellelement in der Unified Modeling Language (UML), einer Sprache für die Modellierung der Strukturen und des Verhaltens von Software und anderen Systemen. Ein Objektfluss ist eine spezielle… …   Deutsch Wikipedia

  • Operation (UML) — Eine Operation (engl. operation) ist ein Modellelement in der Unified Modeling Language (UML), einer Modellierungssprache für Software und andere Systeme. Eine Operation ist ein Verhaltensmerkmal, mit der die Art und Weise modelliert wird, wie… …   Deutsch Wikipedia

  • Interaktionsdiagramm — In diesem Artikel oder Abschnitt fehlen folgende wichtige Informationen: Kritik (vgl. engl. Artikel); Bedeutung der UML; aktueller Stand (November 2007 wurde Version 2.1.2 vorgelegt, wie wurde sie aufgenommen?) Du kannst Wikipedia helfen, indem… …   Deutsch Wikipedia

  • UML2 — In diesem Artikel oder Abschnitt fehlen folgende wichtige Informationen: Kritik (vgl. engl. Artikel); Bedeutung der UML; aktueller Stand (November 2007 wurde Version 2.1.2 vorgelegt, wie wurde sie aufgenommen?) Du kannst Wikipedia helfen, indem… …   Deutsch Wikipedia

  • Unified Modeling Language — Die Unified Modeling Language (Vereinheitlichte Modellierungssprache), kurz UML, ist eine graphische Modellierungssprache zur Spezifikation, Konstruktion und Dokumentation von Software Teilen und anderen Systemen[1]. Sie wird von der Object… …   Deutsch Wikipedia

  • Innovator (Software) — Innovator Entwickler MID GmbH Aktuelle Version 11.4.2 (26. September 2011) Kategorie UML Werkzeug, BPMN Werkzeug Lizenz Proprietär, Floating License …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”