상태 다이어그램

Using [PlantUML](https://plantuml.com/) to create state diagrams offers several advantages:
WARNING
 This translation need to be updated. 
WARNING

간단한 상태

[*]을 사용해서 시작점과 종료점을 그린다.

-->를 사용해서 화살표를 그린다.

Change state rendering

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

상태 수정

물론 상태는 수정될 수 있다. state 키워드와 브라켓을 정의해야 한다.

WARNING
 This translation need to be updated. 
WARNING

긴 이름

state 키워드를 사용하면 상태들을 길게 기술할 수 있다.

History [[H], [H*]]

You can use [H] for the history and [H*] for the deep history of a substate.

Fork [fork, join]

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

Concurrent state [--, ||]

You can define concurrent state into a composite state using either -- or || symbol as separator.

Horizontal separator --

Vertical separator ||

[Ref. QA-3086]

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]

You can add pin with <<inputPin>> and <<outputPin>> stereotypes:

[Ref. QA-4309]

Expansion [expansionInput, expansionOutput]

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

[Ref. QA-4309]

Arrow direction

You can use -> for horizontal arrows. It is possible to force arrow's direction using the following syntax:

You can shorten the arrow definition by using only the first character of the direction (for example, -d- instead of -down-) or the two first characters (-do-).

Please note that you should not abuse this functionality : Graphviz gives usually good results without tweaking.

Change line color and style

You can change line color and/or line style.

[Ref. QA-93]

Change head or tail of arrow line

Note

You can also define notes using note left of, note right of, note top of, note bottom of keywords.

You can also define notes on several lines.

You can also add note on start or end state:
[Ref. QA-20400]

You can also have floating notes.

Note on link

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

More in notes

You can put notes on composite states.

Inline color

[Ref. QA-1812]

Skinparam

You can use the skinparam command to change colors and fonts for the drawing.

You can use this command : You can define specific color and fonts for stereotyped states.

Test of all specific skinparam to State Diagrams

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]