Zustandsdiagramm

Zustandsdiagramme bieten eine visuelle Darstellung der verschiedenen Zustände, die ein System oder ein Objekt einnehmen kann, sowie der Übergänge zwischen diesen Zuständen. Sie sind für die Modellierung des dynamischen Verhaltens von Systemen unerlässlich, da sie aufzeigen, wie diese im Laufe der Zeit auf verschiedene Ereignisse reagieren. Zustandsdiagramme stellen den Lebenszyklus eines Systems dar und erleichtern so das Verständnis, den Entwurf und die Optimierung seines Verhaltens.

Mit PlantUML zur Erstellung von Zustandsdiagrammen bietet mehrere Vorteile:

Einfacher Zustand

Sie können [*] für den Anfangs- und Endpunkt von des Zustandsdiagramms verwenden.

Verwenden Sie --> für Pfeile.

Ändern Sie die Darstellung des Zustands

Sie können hide empty description verwenden, um den Zustand als einfache Box darzustellen

Zusammengesetzter Zustand

Ein Zustand kann auch zusammengesetzt sein. Sie müssen ihn mit den Schlüsselwörtern state und Klammern definieren.

Interner Unterzustand

Unterzustand zu Unterzustand

[Ref. QA-3300]

Lange Bezeichnungen für einen Zustand

Mit dem state Schlüsselwort können auch längere Bezeichnungen eines Status definiert werden.

History [[H], [H*]]

Sie können [H] für die History und [H*] für die Deep History eines Substates verwenden.

Fork [fork, join]

You can also fork and join using the <<fork>> and <<join>> stereotypes.

Nebenläufige Zustände

Nebenläufige Zustände können mit dem -- oder || Symbol in einem zusammengesetzten Zustand zusammengefasst werden..

[Ref. QA-3086]
WARNING
 This translation need to be updated. 
WARNING

Conditional [choice]

The stereotype <<choice>> can be used to use conditional state.

Stereotypes full example [start, choice, fork, join, end, history, history*]

Start, choice, fork, join, end

[Ref. QA-404, QA-1159 and GH-887]

History, history*

[Ref. QA-16824]

Minimal example with all stereotypes

[Ref. QA-19174]

Point [entryPoint, exitPoint]

You can add point with <<entryPoint>> and <<exitPoint>> stereotypes:

Pin [inputPin, outputPin]

Du kannst auch pin mit <<inputPin>> und <<outputPin>> stereotypes: hinzufügen

[Ref. QA-4309]

WARNING
 This translation need to be updated. 
WARNING

Expansion [expansionInput, expansionOutput]

You can add expansion with <<expansionInput>> and <<expansionOutput>> stereotypes:

[Ref. QA-4309]

Pfeilrichtung

Mit dem -> Symbol können waagerechte Pfeile erzeugt werden. Man kann die Richtung der Pfeile außerdem mit der folgenden Syntax festlegen:

Man kann die Länge eines Pfeils verkürzen, in dem man nur den ersten Buchstaben der Richtung verwendet (zum Beispiel, -d- anstelle von -down-) oder die ersten beiden Buchstaben (-do-).

Beachten Sie, dass sie mit dieser Möglichkeit sorgfältig umgehen: GraphViz liefert normalerweise recht gute Ergebnisse, ohne das manuell eingegriffen werden muss.

Change line color and style

You can change line color and/or line style.

[Ref. QA-93]

Change head or tail of arrow line

Notizen

Notizen können mit den note left of, note right of, note top of, note bottom of Schlüsselworten

an die Zustände gebunden werden. Die Notizen können sich auch über mehrere Zeilen erstrecken.

Es ist auch möglich, freistehende Notizen hinzuzufügen.

WARNING
 This translation need to be updated. 
WARNING

Note on link

You can put notes on state-transition or link, with note on link keyword.

Mehr über Notizen

Es ist auch möglich, Notizen für einen verbunden Zustand zu erstellen.

Inline color

[Ref. QA-1812]

Skinparam

Mit dem skinparam Befehl kann die Farbe und die Schriftart der Zeichnung verändert werden.

Sie können den Befehl auf die folgenden Arten verwenden:

Es können spezielle Farben und Schriftarten für stereotypische Zustände definiert werden.

WARNING
 This translation need to be updated. 
WARNING

Changing style

You can change style.

[Ref. GH-880]

Change state color and style (inline style)

You can change the color or style of individual state using the following notation:

With background color first (#color), then line style and line color (##[style]color ).

[Ref. QA-1487]

FIXME
🚩 text:color seems not to be taken into account
FIXME

[Adapted from QA-3770]

Alias

With State you can use alias, like:

or:

[Ref. QA-1748, QA-14560]

Display JSON Data on State diagram

Simple example

[Ref. QA-17275]

For another example, see on JSON page.

State description

You can add description to a state or to a composite state.

[Ref. QA-16719]

Style for Nested State Body

[Ref. QA-16774]