Das Kefk Network Wiki befindet sich im Testbetrieb.
Zustandsautomat (UML)
Aus Kefk.
| <imagemap>-Fehler: Bild ist ungültig oder nicht vorhanden | Die Artikel Zustandsdiagramm (UML), Zustandsübergangsdiagramm und Zustandsautomat (UML) überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Die Diskussion über diese Überschneidungen findet hier statt. Bitte äußere dich dort, bevor du den Baustein entfernst. ReqEngineer Au weia!!! 14:14, 6. Jan. 2007 (CET) |
| Dieses Dokument entstammt in seiner ersten oder einer späteren Version der deutschsprachigen Wikipedia. Es ist dort zu finden unter dem Stichwort Zustandsautomat_%28UML%29, die Liste der bisherigen Autoren befindet sich in der Versionsliste; die Originalfassung kann dort auch bearbeitet werden. Alle Texte der Wikipedia und ihre Derivate stehen unter der GNU-Lizenz für freie Dokumentation. |
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.
Inhaltsverzeichnis |
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
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
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)
Arten von Zustandsautomaten
Verhaltenszustandsautomat
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
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
| Dieses Dokument entstammt in seiner ersten oder einer späteren Version der deutschsprachigen Wikipedia. Es ist dort zu finden unter dem Stichwort Zustandsautomat_%28UML%29, die Liste der bisherigen Autoren befindet sich in der Versionsliste; die Originalfassung kann dort auch bearbeitet werden. Alle Texte der Wikipedia und ihre Derivate stehen unter der GNU-Lizenz für freie Dokumentation. |
