Диаграммы состояний в PlantUML — must-have инструмент системного аналитика

В микросервисах постоянно нужно описывать жизненный цикл заявок, заказов, пользователей, транзакций и документов. Диаграмма состояний (State Diagram)— лучший способ это сделать понятно и точно

Когда использовать:

- Моделирование поведения объектов (заказ в магазине, задача, регистрация)

- Анализ конечных автоматов (FSM)

- Документирование бизнес-процессов с разными исходами (одобрено / отклонено / отменено)

Как быстро запустить PlantUML Локально через Docker (рекомендую):

Bash docker run -d -p 8080:8080 plantuml/plantuml-server:jetty

Открываете http://localhost:8080

Или сразу онлайн: [plantuml.com/plantuml](https://www.plantuml.com/plantuml/uml/)

Базовый синтаксис

@startuml [*] --> Черновик

Черновик --> На_проверке : submit()

На_проверке --> Одобрено : approve()

На_проверке --> Отклонено : reject()

Одобрено --> [*] Отклонено --> [*]

@enduml

Полезные возможности

Составные (вложенные) состояния:

state Review { [*] --> Draft

Draft --> Approved Approved --> [*] }

Цвета и описания состояний:

state Одобрено #LightGreen : Прошёл все проверки

state Отклонено #LightPink : Отказ

Реальный пример из практики (регистрация ЮЛ + ТСП)

@startuml

[*] --> Черновик

Черновик --> Отправлено_в_Банк : Клиент заполняет анкету

Отправлено_в_Банк --> На_проверке : Анкета передана на проверку

На_проверке --> Отклонено : Не прошло проверку

На_проверке --> Временно_зарегистрировано_ЮЛ : Банк проводит KYC/AML

Временно_зарегистрировано_ЮЛ --> Зарегистрировано_ЮЛ : Получен ticketId

Зарегистрировано_ЮЛ --> Заявка_на_регистрацию_ТСП : Инициирована регистрация торговой точки

Заявка_на_регистрацию_ТСП --> Зарегистрировано_ТСП : Получен merchantId

Отклонено --> [*] state

Отклонено #LightPink state

Зарегистрировано_ТСП #LightGreen

@enduml

Скопируйте код → вставьте в PlantUML → получите готовую диаграмму за 10 секунд

Такие диаграммы отлично ложатся в Confluence, внутреннюю wiki и значительно повышают качество документации.

Хотите разбор других диаграмм PlantUML (Sequence, Component, Deployment, Timing)? Пишите в комментариях

Записывайтесь на курс: https://bsahub.pro

11