Zustandsdiagramm (UML)

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

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

Theoretische Grundlagen

Der in UML-Zustandsdiagrammen abgebildete Typ von Zustandsautomat ist eine objektbasierte Variante von Harel-Zustandsdiagrammen [1] die von der UML aufgenommen und erweitert wurden. UML-Zustandsautomaten überwinden die wesentlichsten Einschränkungen von traditionellen Endlichen Automaten unter Erhalt ihrer größten Vorteile. Das UML Zustandsdiagramm führt die insoweit neuen Konzepte von hierarchisch verschachtelten Zuständen und orthogonalen Bereichen ein und erweitert den Begriff der Aktion entsprechend. UML-Zustandsautomaten haben zugleich Eigenschaften von Mealy- und Moore-Automaten. Sie unterstützen Aktionen, die zugleich vom Zustand des Systems und einem auslösenden Ereignis abhängen, wie in Mealy-Automaten, ebenso wie Eintritts- und Austritts-Aktionen, die eher zustands- als aktionsorientiert sind, wie in Moore-Automaten.

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

Darstellung von Zuständen

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

Darstellung von Transitionen

Eine Transition (Übergang) 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

Symbole für Pseudo-Zustände

Die UML2 kennt folgende Pseudo-Zustände:

  • der Startzustand (engl. initial)
  • der Terminator (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 gestrichen werden kann.

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-Datei; 1,9 MB).

Weblinks

Einzelnachweise

  1. Harel, David (1987): Statecharts: A Visual Formalism for Complex Systems. Abgerufen am 9. März 2011.

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 — Der Begriff Zustandsdiagramm entstammt der Systemtheorie. Er bezeichnet die grafische Darstellung von Zuständen und daran anknüpfenden Zustandswechseln. Er findet Verwendung in mehreren Bereichen: In der Informatik ist das… …   Deutsch Wikipedia

  • UML —   [Abk. für Unified Modeling Language, dt. »vereinheitlichte Sprache für Modellierungen«], eine Ende der 1990er Jahre entwickelte grafische Sprache zur Beschreibung objektorientierter Modelle (objektorientierte Programmierung, Objekt). Nach der… …   Universal-Lexikon

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

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

  • Aktivitätsträger — Ein Thread (auch: Aktivitätsträger oder leichtgewichtiger Prozess, vereinzelt auch: Faden) bezeichnet in der Informatik einen Ausführungsstrang oder eine Ausführungsreihenfolge in der Abarbeitung eines Programms. Ein Thread ist Teil eines… …   Deutsch Wikipedia

  • Faden (Informatik) — Ein Thread (auch: Aktivitätsträger oder leichtgewichtiger Prozess, vereinzelt auch: Faden) bezeichnet in der Informatik einen Ausführungsstrang oder eine Ausführungsreihenfolge in der Abarbeitung eines Programms. Ein Thread ist Teil eines… …   Deutsch Wikipedia

  • Kernel Thread — Ein Thread (auch: Aktivitätsträger oder leichtgewichtiger Prozess, vereinzelt auch: Faden) bezeichnet in der Informatik einen Ausführungsstrang oder eine Ausführungsreihenfolge in der Abarbeitung eines Programms. Ein Thread ist Teil eines… …   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

Share the article and excerpts

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