Ein Zustandsmaschinendiagramm ist ein Verhalten, das die Folge von Zuständen angibt, die ein Objekt während seiner Lebensdauer als Reaktion auf Ereignisse besucht, zusammen mit seinen Reaktionen auf diese Ereignisse.
Bundesland
Ein Zustand ist ein Zustand während der Lebensdauer eines Objekts, während dessen es eine Bedingung erfüllt, eine Aktivität ausführt oder auf ein externes Ereignis wartet
Beispiel:
Merkmale des Staates
- Zustand repräsentiert den Zustand von Objekten zu bestimmten Zeitpunkten.
- Objekte (oder Systeme) können als sich von Zustand zu Zustand bewegend angesehen werden
- Ein Punkt im Lebenszyklus eines Modellelements, der eine Bedingung erfüllt, an dem eine bestimmte Aktion ausgeführt wird oder an dem auf ein Ereignis gewartet wird
Die folgende Abbildung zeigt eine detaillierte Beschreibung eines Zustands. Der Zustand wird um interne Aktionen (do, help) erweitert. Im Gegensatz zu anderen Aktionen können diese Aktionen unterbrochen werden. Wenn „cancel“ auftritt, werden die do- oder help-Aktionen unterbrochen. Interne Aktionen werden nach dem Abschnitt „entry“ ausgeführt und beim Verlassen des Zustands abgebrochen.
Anfangs- und Endzustand
- Der Anfangszustand eines Zustandsmaschinendiagramms, bekannt als Anfangspseudozustand, ist mit einem ausgefüllten Kreis gekennzeichnet. Ein Übergang von diesem Zustand zeigt den ersten realen Zustand
- Der Endzustand eines Zustandsmaschinendiagramms wird als konzentrische Kreise dargestellt. Eine Zustandsmaschine mit offener Schleife stellt ein Objekt dar, das beendet werden kann, bevor das System beendet wird, während ein Zustandsmaschinendiagramm mit geschlossener Schleife keinen Endzustand hat; Wenn dies der Fall ist, lebt das Objekt, bis das gesamte System beendet wird.
Beispiel:
Fall
Ein Ereignis ist die Spezifikation eines signifikanten Ereignisses. Für eine Zustandsmaschine ist ein Ereignis das Auftreten eines Stimulus, der einen Zustandsübergang auslösen kann.
Übergang
Ein Übergang ist eine Beziehung zwischen zwei Zuständen, die angibt, dass ein Objekt im ersten Zustand, wenn ein bestimmter Satz von Ereignissen und Bedingungen erfüllt ist, bestimmte Aktionen ausführt und in den zweiten Zustand eintritt.
Ein Übergang hat: Übergangskomponenten, die (1) einen Quellzustand (2) einen Ereignisauslöser (3) eine Aktion (4) einen Zielzustand umfassen
Selbst-Übergang
Ein Selbstübergang ist ein Übergang, dessen Quell- und Zielzustand gleich sind
Aktion
Eine Aktion ist eine ausführbare, atomare (in Bezug auf die Zustandsmaschine) Berechnung. Aktionen können Operationen, die Erstellung oder Zerstörung anderer Objekte oder das Senden von Signalen an andere Objekte (Ereignisse) umfassen.
Bibliotheksbeispiel
Die folgende Abbildung zeigt ein einfaches Zustandsmaschinendiagramm. Die Hauptbestandteile eines solchen Diagramms sind:
- Zustand: Das Beispiel hat zwei Zustände: „Ausgeliehen“ und „Im Regal“.
- Anfangszustand: Dies ist der Zustand, in dem das System startet.
- Übergänge: Übergänge beschreiben mögliche Zustandsänderungen. Das Diagramm hat zwei Übergänge: von „Ausgeliehen“ zu „Im Regal“ und umgekehrt.
- Ereignisse: Ereignisse werden auf Übergängen gekennzeichnet. Sie stellen das Ereignis dar, das bei einem Übergang ausgeführt wird. Beim Übergang vom Status „Ausgeliehen“ in den Status „Im Regal“ wird das Ereignis „returned()“ ausgeführt.
Eine Aktion ist eine Modifikation der Zustandsvariablen. Im folgenden Beispiel werden Aktionen für Übergänge angegeben. Wenn der Übergang von „im Regal“ zu „ausgeliehen“ erfolgt, werden die Zustandsvariablenbücher verringert.
Aktionen können an Transitionen, aber auch in Zuständen angegeben werden. In diesem Fall kann angegeben werden, ob die Aktion beim Betreten oder Verlassen des Staates ausgeführt werden muss. In der Abbildung unten sind diese Optionen dargestellt.
- Die erste Option zeigt die Spezifikation von Aktionen, wenn ein Übergang vorgenommen wird. Die Aktion wird bei der Zustandsänderung ausgeführt.
- Die zweite Option zeigt die Spezifikation einer Aktion in einem Zustand. Das Schlüsselwort „entry“ gibt an, dass die Aktion ausgeführt werden muss, wenn der Zustand betreten wird.
- Schließlich zeigt die dritte Option, wie angegeben werden kann, dass beim Verlassen eines Zustands eine Aktion ausgeführt wird. Beachten Sie das Schlüsselwort „exit“.
Einfache Notation von Zustandsmaschinendiagrammen
Zustandsmaschinendiagramm – Fortgeschrittene Konzepte
Einschränkungen
Es ist möglich, Übergängen Beschränkungen hinzuzufügen. Betrachten Sie die folgende Abbildung. Constraint „[not last copy]“ und „[last copy]“ werden verwendet, um die beiden Übergänge mit dem Ereignis „copyBorrowed()“ zu unterscheiden. Die Semantik ist, dass ein Übergang aktiviert wird, wenn die Einschränkung wahr ist.
Unterzustände
Ein einfacher Zustand ist einer, der keine Unterstruktur hat. Ein Zustand, der Unterzustände (verschachtelte Zustände) hat, wird zusammengesetzter Zustand genannt. Unterzustände können auf jeder Ebene verschachtelt werden. Eine verschachtelte Zustandsmaschine kann höchstens einen Anfangszustand und einen Endzustand haben. Unterzustände werden verwendet, um komplexe flache Zustandsautomaten zu vereinfachen, indem sie zeigen, dass einige Zustände nur innerhalb eines bestimmten Kontexts (des umschließenden Zustands) möglich sind.
Substratbeispiel – Heizung
Zustandsmaschinendiagramme werden häufig zum Ableiten von Testfällen verwendet, hier ist eine Liste möglicher Testideen:
- Der Ruhezustand empfängt das Ereignis „Too Hot“.
- Der Ruhezustand empfängt das Ereignis „Too Cool“.
- Der Kühl-/Startzustand empfängt das Ereignis „Kompressor läuft“.
- Der Zustand „Kühlen/Bereit“ empfängt das Ereignis „Lüfter läuft“.
- Der Kühl-/Betriebszustand erhält ein OK-Ereignis
- Der Kühl-/Betriebszustand empfängt das Fehlerereignis
- Der Fehlerstatus empfängt das Ereignis Fehler gelöscht
- Heizzustand erhält OK-Event
- Heizzustand empfängt Fehlerereignis
Geschichte Staaten
Sofern nicht anders angegeben, beginnt die Aktion der verschachtelten Zustandsmaschine beim Eintritt eines Übergangs in einen zusammengesetzten Zustand erneut im Anfangszustand (sofern der Übergang nicht direkt auf einen Unterzustand abzielt). Verlaufszustände ermöglichen es der Zustandsmaschine, wieder in den letzten Teilzustand einzutreten, der vor dem Verlassen des zusammengesetzten Zustands aktiv war. Ein Beispiel für die Verwendung des Verlaufsstatus ist in der folgenden Abbildung dargestellt.
Gleichzeitiger Zustand
Wie oben erwähnt, können Zustände in Zustandsmaschinendiagrammen verschachtelt werden. Verwandte Zustände können zu einem einzigen zusammengesetzten Zustand zusammengefasst werden. Das Verschachteln von Zuständen in anderen ist notwendig, wenn eine Aktivität gleichzeitige Unteraktivitäten umfasst. Das folgende Zustandsmaschinendiagramm modelliert eine Auktion mit zwei gleichzeitigen Teilzuständen: Verarbeitung des Gebots und Autorisierung des Zahlungslimits.
Beispiel für ein nebenläufiges Zustandsmaschinendiagramm – Auktionsprozess
In diesem Beispiel erfordert die Zustandsmaschine, die zuerst in die Auktion eintritt, zu Beginn eine Verzweigung in zwei getrennte Start-Threads. Jeder Unterzustand hat einen Ausgangszustand, um das Ende des Threads zu markieren. Sofern kein anormaler Austritt (Abbruch oder Zurückgewiesen) vorliegt, erfolgt der Austritt aus dem zusammengesetzten Zustand, wenn beide Unterzustände ausgetreten sind.
verwandte Links
Beispiele für Zustandsdiagramme zum Selbermachen mit Visual Paradigm Online
- Kostenlose Beispiele und Vorlagen für Zustandsmaschinendiagramme, die in einer Online-Software für Zustandsmaschinendiagramme bearbeitet werden können: Visual Paradigm Online .
- Verwenden Sie die Vorlagen als Ausgangspunkt, um Ihr eigenes Zustandsmaschinendiagramm zu erstellen.
Kostenloses UML-Software-Tool
Sie haben gelernt, was ein Zustandsmaschinendiagramm ist und wie man ein Zustandsmaschinendiagramm zeichnet. Es ist an der Zeit, ein eigenes Zustandsmaschinendiagramm zu zeichnen. Holen Sie sich Visual Paradigm Community Edition, eine kostenlose UML-Software, und erstellen Sie Ihr eigenes Zustandsmaschinendiagramm mit dem kostenlosen Zustandsmaschinendiagramm-Tool. Es ist einfach zu bedienen und intuitiv.