Sie können zu dieser Seite beitragen, indem Sie hier klicken  (Menu)


You can vote to improve syntax about packages/namespaces !

 

 

Zustandsdiagramme

 

 

Einfache Zustandsdiagramme

Für den Startpunkt und den Endpunkt im Zustandsdiagramms können Sie das Symbol [*] verwenden.

Verwenden Sie --> um Pfeile zu definieren.

@startuml

[*] --> State1
State1 --> [*]
State1 : this is a string
State1 : this is another string

State1 -> State2
State2 --> [*]

@enduml

 

 

Change state rendering

You can use hide empty description to render state as simple box.

@startuml
hide empty description
[*] --> State1
State1 --> [*]
State1 : this is a string
State1 : this is another string

State1 -> State2
State2 --> [*]
@enduml

 

 

Verschachtelter Zustand

Ein Zustand kann auch verschachtelt werden. Dies funktioniert mit dem state Schlüsselwort und den geschweiften Klammern.

@startuml
scale 350 width
[*] --> NotShooting

state NotShooting {
  [*] --> Idle
  Idle --> Configuring : EvConfig
  Configuring --> Idle : EvConfig
}

state Configuring {
  [*] --> NewValueSelection
  NewValueSelection --> NewValuePreview : EvNewValue
  NewValuePreview --> NewValueSelection : EvNewValueRejected
  NewValuePreview --> NewValueSelection : EvNewValueSaved
  
  state NewValuePreview {
	 State1 -> State2
  }
  
}
@enduml

 

 

Lange Bezeichnungen für einen Zustand

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

@startuml
scale 600 width

[*] -> State1
State1 --> State2 : Succeeded
State1 --> [*] : Aborted
State2 --> State3 : Succeeded
State2 --> [*] : Aborted
state State3 {
  state "Accumulate Enough Data\nLong State Name" as long1
  long1 : Just a test
  [*] --> long1
  long1 --> long1 : New Data
  long1 --> ProcessData : Enough Data
}
State3 --> State3 : Failed
State3 --> [*] : Succeeded / Save Result
State3 --> [*] : Aborted
 
@enduml

 

 

Fork

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

@startuml

state fork_state <<fork>>
[*] --> fork_state
fork_state --> State2
fork_state --> State3

state join_state <<join>>
State2 --> join_state
State3 --> join_state
join_state --> State4
State4 --> [*]

@enduml

 

 

Konkurrierende Zustände

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

@startuml
[*] --> Active

state Active {
  [*] -> NumLockOff
  NumLockOff --> NumLockOn : EvNumLockPressed
  NumLockOn --> NumLockOff : EvNumLockPressed
  --
  [*] -> CapsLockOff
  CapsLockOff --> CapsLockOn : EvCapsLockPressed
  CapsLockOn --> CapsLockOff : EvCapsLockPressed
  --
  [*] -> ScrollLockOff
  ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
  ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
}

@enduml

 

 

Pfeilrichtung

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

@startuml

[*] -up-> First
First -right-> Second
Second --> Third
Third -left-> Last

@enduml
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.

 

 

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.

@startuml

[*] --> Active
Active --> Inactive

note left of Active : this is a short\nnote

note right of Inactive
  A note can also
  be defined on
  several lines
end note

@enduml

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

@startuml

state foo
note "This is a floating note" as N1

@enduml

 

 

Mehr über Notizen

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

@startuml

[*] --> NotShooting

state "Not Shooting State" as NotShooting {
  state "Idle mode" as Idle
  state "Configuring mode" as Configuring
  [*] --> Idle
  Idle --> Configuring : EvConfig
  Configuring --> Idle : EvConfig
}

note right of NotShooting : This is a note on a composite state

@enduml

 

 

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.

@startuml
skinparam backgroundColor LightYellow
skinparam state {
  StartColor MediumBlue
  EndColor Red
  BackgroundColor Peru
  BackgroundColor<<Warning>> Olive
  BorderColor Gray
  FontName Impact
}

[*] --> NotShooting

state "Not Shooting State" as NotShooting {
  state "Idle mode" as Idle <<Warning>>
  state "Configuring mode" as Configuring
  [*] --> Idle
  Idle --> Configuring : EvConfig
  Configuring --> Idle : EvConfig
}

NotShooting --> [*]
@enduml