UML-Zustandsdiagramm: Visualisieren Sie Sequenzen von Objektzuständen

UML-Zustandsdiagramm

UML-Zustandsdiagramm: Visualisieren Sie Sequenzen von Objektzuständen

Bei der Entwicklung eines Produkts oder Computerprogramms können UML-Zustandsdiagramme dazu beitragen, den Lebenszyklus jedes Objekts klar und verständlich darzustellen. Obwohl dieses Diagramm nur aus wenigen Elementen besteht, kann es bei korrekter Verwendung erheblich zum Endergebnis beitragen. In den folgenden Abschnitten erklären wir, warum und in welchen Fällen es sich lohnt, ein UML-Zustandsdiagramm zu entwickeln und wie dies zu tun ist.

Index
  1. Was ist ein UML-Zustandsdiagramm?
  2. Wofür ist das UML-Zustandsdiagramm?
  3. Zustandsdiagramm: Struktur und Komponenten
    1. Zustand
    2. Übergang: Wie ändern Sie den Status?
      1. Externer Übergang: Zustandsänderung
      2. Interner Übergang: unveränderter Zustand
    3. Ereignisse: Warum wird der Zustand geändert?
    4. Pseudozustände
  4. Komplexe Diagramme
  5. Erstellen Sie ein Zustandsdiagramm: Beispiel eines einfachen Diagramms

Was ist ein UML-Zustandsdiagramm?

Ein UML-Zustandsdiagramm (auch als Zustandsdiagramm, Zustandsübergangsdiagramm oder Zustandsmaschinendiagramm bezeichnet) zeigt die Zustände, die eine endliche Zustandsmaschine durchläuft, dh ein Verhaltensmodell, das aus Aktionen und Zuständen besteht. oder Übergänge in andere Staaten. Das Diagramm enthält einen Anfangs- und einen Endzustand sowie mindestens einen Zwischenzustand für jedes Objekt. Das Zustandsdiagramm ermöglicht auf diese Weise die Darstellung des gesamten Lebenszyklus eines Systems, eines Subsystems oder von Komponenten oder Klassen davon, wie beispielsweise einer Kaffeemaschine, eines elektronischen Buchlesegeräts oder einer technologischen Komponente eines Fahrzeugs.

Das Zustandsdiagramm ist einer der 14 Diagrammtypen, die in der Unified Modeling Language (UML) oder Unified Modeling Language und in der Systems Model Language (SysML) definiert sind. Es geht auf ein Konzept zurück, das David Harel 1987 in seinem Artikel Statecharts: Ein visueller Formalismus für komplexe Systeme vorgeschlagen hatte . Andere Arten von UML-Diagrammen sind beispielsweise das Anwendungsfalldiagramm oder das Komponentendiagramm.

Wofür ist das UML-Zustandsdiagramm?

Wie bereits erwähnt, besteht das Ziel von Zustandsdiagrammen darin, das Verhalten eines Systems mit äußerster Präzision zu beschreiben. Diese grafische Darstellung der Prozesse sollte unter anderem folgende Fragen beantworten:

  • Was passiert, wenn sich das Objekt in einem bestimmten Zustand befindet?
  • In welchem ​​Zustand muss sich das Objekt befinden, um sein Verhalten zu ändern?
  • Was sind die Auslöser?
  • Welche Eigenschaften muss das Objekt haben, um den Status zu ändern?

Daher werden UML-Zustandsdiagramme verwendet, um jeden Entwicklungsprozess zu optimieren, bei dem es nützlich ist, die Objektzustände und -bedingungen für den Übergang von einem Zustand in einen anderen zu visualisieren. Sie werden beispielsweise häufig beim Entwurf eingebetteter Systeme (auf Englisch eingebettete Systeme ) verwendet, bei denen automatisierte Signale und Hintergrundprozesse perfekt koordiniert werden müssen. In diesem Fall hilft das Zustandsdiagramm Entwicklern, alle wichtigen Regelungs- und Steuerfunktionen in einem einzigen Schema zu visualisieren .

See also  Vektorbild und Bitmap von Angesicht zu Angesicht

Die Funktion der Unterbrechung der Wasseraufnahme , die fast alle Waschmaschinen haben, kann als Beispiel dienen, um sich ein UML-Zustandsdiagramm vorzustellen. In diesem Zusammenhang würde diese Funktion als separates System dargestellt. In diesem Fall würde das Diagramm zeigen, in welchem ​​Zustand und unter welchen Bedingungen die Funktion aktiviert ist.

Hinweis

In verschiedenen Industriezweigen wie der Transport- oder Gesundheitstechnik werden Zustandsdiagramme verwendet, um komplexe Prozesse zu erklären . Sie werden auch im Requirements Engineering sowie im Produkt- und Projektmanagement eingesetzt.

Zustandsdiagramm: Struktur und Komponenten

Obwohl UML-Zustandsdiagramme nur auf wenigen Elementen basieren, können wir durch intelligente Kombination komplexe Zustandssequenzen leicht darstellen. Was sind die Hauptkomponenten und wie ist die Grundstruktur eines Zustandsdiagramms?

Zustand

Zustände sind die Hauptkomponente eines Zustandsdiagramms. Jeder aktuelle Status wird immer in einem Rechteck mit abgerundeten Ecken angezeigt. Beispielsweise kann eine Tür zwei Statuswerte haben:

Zustände einer Tür wie im Zustandsdiagramm gezeigt.
Die zwei möglichen Zustände einer Tür: Sie kann geöffnet oder geschlossen sein, aber nicht beide gleichzeitig.

Ebenso würde das Türstatusdiagramm anzeigen, dass die folgende Bedingung immer erfüllt sein muss:

  • Das Objekt befindet sich immer in einem von zwei Zuständen: Die Tür ist offen oder geschlossen, aber niemals gleichzeitig geöffnet und geschlossen.

In komplexeren Zustandsdiagrammen kann das Rechteck in bis zu drei Zonen unterteilt werden, in denen Verhaltensspezifikationen angezeigt werden (siehe Übergang).

Übergang: Wie ändern Sie den Status?

Um von einem Zustand in den nächsten zu wechseln, muss ein Ereignis ausgelöst werden, das einen Übergang verursacht. Dieser Zustandsübergang kommuniziert die Zustände miteinander und wird durch einen Pfeil dargestellt. Es kann Bedingungen geben, unter denen ein solcher Übergang ausgelöst wird. Im Allgemeinen repräsentieren UML-Zustandsdiagramme interne und externe Übergänge . Ein Zustandsdiagramm muss immer einen externen Übergang haben, muss jedoch keine internen Übergänge enthalten.

Im Zustandsdiagramm eines Aufzugs könnte beispielsweise die folgende Bedingung für die Aktion “Schließen der Aufzugstür” angegeben werden. zu? geschlossen?

Externer Übergang: Zustandsänderung

Der Übergang im folgenden Beispiel wird als extern betrachtet und führt dazu, dass sich der Status des Objekts ändert ( Ein- / Ausstieg ).

Beispiel : Nach dem Auslösen eines Funkalarms ändert sich der Status von? Alarm ein? zu “Alarm aus”.

Beispiel für ein Zustandsdiagramm: externer Übergang.
Wenn der Alarm aktiviert ist, ändert das Objekt seinen Status: Wenn der Alarm vor einem Moment aktiviert wurde, ist er jetzt deaktiviert.

Interner Übergang: unveränderter Zustand

Ein interner Übergang löst keine Zustandsänderung aus, sondern eine Aktivität .

Beispiel : Einige Buchhaltungssysteme senden Rechnungen erneut, ohne den Kunden automatisch zu bezahlen (externer Übergang). Wenn das, was sie senden, eine Erinnerung daran ist, dass die Zahlung der Rechnung aussteht, stellt dies einen internen Übergang dar: Das heißt, obwohl eine Aktivität vorliegt (? Erinnerung senden?), Bleibt die Rechnung im selben Zustand (? Nicht bezahlt?) bis auf neue Ankündigung.

See also  Rückruf: Was sind Rückruffunktionen?

Ereignisse: Warum wird der Zustand geändert?

Durch Ereignisse ist es möglich, die Bedingungen, unter denen ein Zustand zum nächsten übergeht, detaillierter zu beschreiben . Beim Übergang vom Ausgangszustand in den ersten realen Zustand ist dies nicht erforderlich, es können jedoch optional weitere Informationen hinzugefügt werden. Wenn kein Ereignis angezeigt wird, bedeutet dies, dass das Ereignis automatisch auftritt, sobald alle Aktivitäten in den vorherigen Status abgeschlossen wurden.

Wenn der Auslöser nicht angezeigt wird, bedeutet dies, dass dieses Ereignis immer auftritt . Ereignisse können als Verhaltensspezifikation innerhalb des Zustands oder beim Übergang in einen anderen Zustand dargestellt werden (siehe Übergang).

Ein auslösendes Ereignis muss die folgenden drei Bedingungen erfüllen :

  • Eintrag : Das Ereignis wird automatisch ausgelöst, wenn ein Status ausgelöst wird, dh bei allen eingehenden Übergängen.
  • exit : Das Ereignis wird ausgelöst, wenn ein Status beendet wird, dh bei allen ausgehenden Übergängen.
  • do : Das Ereignis wird immer wieder ausgelöst, wenn der Status nicht geändert wird.

Diese Angaben können innerhalb des Zustands selbst notiert werden, um die Darstellung des Verhaltens zu vereinfachen, unter dem sich der Zustand ändert. Es gibt zwei Möglichkeiten, diese Trigger grafisch anzuzeigen. Eine davon besteht darin, sie im entsprechenden Statusfeld anzugeben, wie das folgende Beispiel eines Zustandsdiagramms zeigt:

Beispiel für ein Zustandsdiagramm: Zustand mit auslösenden Ereignissen.
Der Zustand einer Tür ist “geschlossen”. Um in diesen Zustand zu gelangen, muss das Ereignis “Tür schließen” zuerst stattfinden. (Eintrag). Wenn der Staat verlassen wird, ist das Ereignis? Öffnen Sie die Tür? (Ausfahrt). Ist die Tür während des Zustands (dauerhaft) geschlossen? (machen).

Ereignisse können auch durch einen Übergangspfeil angezeigt werden:

Darstellung zweier aufeinanderfolgender Zustände mit Ereignis und Übergang.
In einfachen Zustandsdiagrammen werden Ereignisse auf dem Übergangspfeil vermerkt.

Pseudozustände

Wenn in UML-Zustandsdiagrammen ein Steuerelement den Betrieb einer Zustandsmaschine beeinflusst, ihm jedoch kein Wert zugewiesen ist, wird es als Pseudozustand bezeichnet. In UML 2, der aktuellen Version der Unified Modeling Language, sind die folgenden zehn Pseudozustände definiert:

  • Anfangszustand (auf Englisch, Anfangszustand ): ohne eingehenden Übergang und mit ausgehendem Übergang, der den Zustand am Anfang der Sequenz anzeigt.
  • Endzustand (in Englisch, final ): keine abgehenden Übergang; Ende der Verhaltenssequenz.
  • Bifurkation (in englischer Sprache, Gabel ): Teilung in mehreren parallelen Staaten.
  • Synchronisation (auf Englisch Join ): Synchronisation mehrerer paralleler Zustände.
  • Union (auf Englisch, Junction ): Knoten der Vereinigung mehrerer Übergänge in Reihe.
  • Auswahl (Englisch, Auswahl ): i Knoten, von dem aus verschiedene Übergänge auf der Grundlage einer vorherigen Entscheidung initiiert werden können.
  • Eintrittspunkt (in Englisch, Eintrittspunkt ): Synthese von ähnlichen Übergängen , die eine Verbindung Zustand.
  • Starten (Englisch, Austrittspunkt ): Synthese von ähnlichen Übergängen , die in einem zusammengesetzten Zustand stammen.
  • History Fläche (Englisch, flacher Verlauf ) der letzten aktiven Speicher substate eine Verbindung Zustand.
  • Deep History (auf Englisch Deep History ), in dem der letzte aktive Unterzustand auf allen Ebenen eines zusammengesetzten Zustands gespeichert wird.
See also  Flatter-Tutorial: Lernen Sie, Anwendungen mit dem Google SDK zu entwickeln

Komplexe Diagramme

Abhängig von der Komplexität des Prozesses ist es möglich, Unterzustände in den Schaltplan aufzunehmen, die ein detailliertes Bild jedes Zustands des Objekts und seines möglichen Verhaltens zeigen. Diese komplexere Version der UML-Zustandsdiagramme ist normalerweise die häufigste, insbesondere im technischen Bereich.

  • Composite – Zustand : Diese Struktur ermöglicht es Ihnen , zu definieren , einen Zustand in der Tiefe .

Beispiel : Eine Tür kann sich in zwei Zuständen befinden 😕 Offen? oder? geschlossen? Die Unterzustände des Staates? Geschlossen? könnten sie blockiert werden? und “entsperrt”.

  • Maschinenzustand : Der Zustand enthält ein untergeordnetes Zustandsdiagramm . Ein Unterzustand, der aus mehreren Unterzuständen besteht, wird als komplexer Zustand bezeichnet. Die verschiedenen Unterzustände können beide unabhängig voneinander laufen und miteinander verwandt sein.

Beispiel : Die Weckerfunktion eines Smartphones ist eine der vielen Funktionen, die sich auf andere Zustände beziehen können. Wenn unterschiedliche Alarme für unterschiedliche Zeiten und Wochentage programmiert werden, besteht der gesamte Prozess aus Unterzuständen, die unabhängig voneinander ausgeführt werden.

Erstellen Sie ein Zustandsdiagramm: Beispiel eines einfachen Diagramms

Zustandsdiagramme können auf Objekte aller Art angewendet werden. Im folgenden Beispiel zeigen wir Ihnen, wie Sie jeden Artikel in das Diagramm einer Rechnung aufnehmen. Dies sind die wichtigsten Elemente eines UML-Zustandsdiagramms:

Die wichtigsten Elemente, aus denen ein Zustandsdiagramm besteht.
Die wichtigsten Elemente eines UML-Zustandsdiagramms.

Wenn wir die Elemente für unser Beispiel kombinieren, könnte ein einfaches Diagramm folgendermaßen aussehen:

Beispiel eines Diagramms eines internen Übergangs.
In diesem Beispiel hat das UML-Zustandsdiagramm einen internen Übergang.

Am Anfang befindet sich die Rechnung im Pseudo-Zustand? geschrieben ? ( geschrieben ). Bestenfalls der Übergang zu? Bezahlt? ( bezahlt ). Dieser Übergang könnte detaillierter beschrieben werden, indem das Ereignis “Senden” angegeben wird.

Sobald die Rechnung bezahlt wurde, hat sie den Status “Bezahlt”. . Bevor Sie diesen Status erreichen, muss möglicherweise eine “Erinnerung” gesendet werden. ( Erinnerung ). In diesem Fall handelt es sich um einen internen Übergang , da sich der Status der Rechnung nicht ändert, auch wenn eine Aktivität auftritt . Wenn die Rechnung nicht bezahlt wird, werden bis zu drei Erinnerungen gesendet.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *