New! Render PlantUML diagrams directly inside GitHub
with our official browser extension —
No server. No tokens. No tracking. Zero permissions but clipboard. —
Try it out and let us know what you think!
Диаграмма состояний
Диаграммы состояний позволяют наглядно представить различные состояния, в которых может находиться система или объект, а также переходы между этими состояниями. Они необходимы для моделирования динамического поведения систем, отражая их реакцию на различные события во времени. Диаграммы состояний отображают жизненный цикл системы, облегчая понимание, проектирование и оптимизацию ее поведения. Использование PlantUML для создания диаграмм состояний имеет ряд преимуществ:- Текстовый язык: Быстрое определение и визуализация состояний и переходов без необходимости рисования вручную.
- Эффективность и согласованность: Обеспечивают упорядоченное создание диаграмм и легкий контроль версий.
- Универсальность: Интеграция с различными платформами документирования и поддержка различных форматов вывода.
- Open-Source & Community Support: Опирается на сильное сообщество, которое постоянно вносит свой вклад в его совершенствование и предлагает бесценные ресурсы.
Простое состояние
Для изображения начального и конечного псевдосостояний используется [*].
Используйте --> для изображения переходов.
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, join]
Также можно использовать стереотипы <<fork>> и <<join>> для создания ветвления и слияния обратно.
Параллельные состояния
Используя -- или ||, вы можете объявлять параллельные подсостояния внутри составного состояния.
Горизонтальное разделение --
Вертикальное разделение ||
WARNING
This translation need to be updated. WARNING
Условия [choice]
Стереотип <<choice>> может быть использован для создания состояний-условий.
Stereotypes full example [start, choice, fork, join, end, history, history*]
Start, choice, fork, join, end
History, history*
Minimal example with all stereotypes
Point [entryPoint, exitPoint]
You can add point with <<entryPoint>> and <<exitPoint>> stereotypes:
Pin [inputPin, outputPin]
You can add pin with <<inputPin>> and <<outputPin>> stereotypes:
Expansion [expansionInput, expansionOutput]
You can add expansion with <<expansionInput>> and <<expansionOutput>> stereotypes:
Направления стрелок
Для изображения стрелок перехода горизонтально используется оператор ->.
Следующий синтаксис позволяет задать другое направление.
-down->или-->-right->или->(по умлочанию)-left->-up->
-d-> или -do-> вместо -down->).
Не следует злоупотреблять этой функциональностью: GraphViz
в большинстве случаев дает хороший результат без лишних манипуляций.
Изменение цвета и отображения
Можно использовать параметр цвета вместе со стилем.
WARNING
This translation need to be updated. WARNING
Change head or tail of arrow line
Заметки
К состоянию можно добавлять заметки, используя специальные ключевые слова:
note left of, note right of, note top of, note bottom of
.
Заметки можно определять в несколько строк.
WARNING
This translation need to be updated. WARNING
Заметки о переходах
Можно оставлять заметки о переходах состояний или связей с помощью note on link.
Еще о заметках
Также заметки можно прикреплять к составным состояниям.
Inline color
Skinparam
Вы можете использовать команду skinparam для изменения шрифтов и цветов диаграммы
Вы можете использовать данную команду :
- В определении диаграммы, как любую другую команду,
- В подключенном файле,
- В конфигурационном файле, указанном в командной строке в задании ANT.
WARNING
This translation need to be updated. WARNING
Changing style
You can change style.
Change state color and style (inline style)
You can change the color or style of individual state using the following notation:
#color ##[style]color
#color), then line style and line color (##[style]color ).
#color;line:color;line.[bold|dashed|dotted];text:color
FIXME
🚩
text:color seems not to be taken into account
FIXME
Alias
With State you can use alias, like:
Display JSON Data on State diagram
Simple example
State description
You can add description to a state or to a composite state.
Style for Nested State Body
Mainframe and frame
Mainframe
You can use global mainframe:
Frame
Or simply local frame:
Specific SkinParameter
By default
By default label are near arrow.
Edge Label Style
You can useskinparam stateDiagramEdgeLabelStyle node to put label on the middle of the arrow, and create a pseudo node.
Mix label defintion
By using localy-[node]-> form.