Нотация UML (SD)
UML (Unified Modeling Language) – унифицированный язык моделирования системных и бизнес-процессов.
SD (Sequence Diagram) – диаграмма последовательностей. Визуализирует взаимодействие между объектами в системе, показывает порядок сообщений, которыми объекты обмениваются во времени, и их жизненный цикл.
Диаграмма последовательностей состоит из следующих элементов:
объекты (зеленое);
линии жизни (красное);
сообщения (синее).

Объекты
Сущности, которые взаимодействуют друг с другом. Основные типы объектов:
actor – пользователь или «клиент»;
participant – сервер, компонент системы;
database – база данных;
queue – топик или очередь.

Линии жизни
Отображают течение времени, а также активность или исполнение определенных функций объекта. Представляют из себя вертикальную линию с блоком активности.
Сообщения
Показывают обмен информацией между объектами. Например, клик пользователя по кнопке, но чаще это запрос или ответ, вызов хранимой процедуры или отправка сообщения. Сообщения отображаются в виде стрелок. Вид стрелки определяет тип сообщения:

Инструменты для работы с UML SD
графический редактор draw.io;
песочница plantUML;
плагины в инструментах JetBrains или VSCode.
Синтаксис PlantUNL
Определяем объекты
actor "Пользователь" as u
participant "Фронт" as f
participant "Бэк" as b
Описываем сообщения
u -> f
f -> b
b -->> f
f -->> u
Основные типы стрелок:
a ->> b: Асинхронный вызов
a -> b: Синхронный вызов
a -->> b: Ответ
a -x b: Запрос, который будет удален
'или от которого решили отказаться/устаревший
Визуализация:

Группируем сообщения
Группировка Alt используется с оператором else для того, чтобы показать альтернативные кейсы взаимодействия. Например, объект отправляет запрос, а второй объект, в зависимости от полученных данных, выполняет разные действия.
alt case 1
a -> b
else case 2
a -> c
end
Визуализация:

Группировка Opt используется для того, чтобы выделить сообщение в опциональный кейс. Например, объект отправляет запрос, а второй объект, в зависимости от полученных данных, может выполнить дополнительное действие.
opt
a -> c
end
Визуализация:

Группировка Par используется с оператором else для того, чтобы выделить сообщения, которые выполняются параллельно. Например, объект отправляет запрос, а второй объект параллельно выполнит внутренние вычисления и вернёт ответ первому объекту.
par
a -> b
else
a -> c
end
Визуализация:

Группировка Loop используется для того, чтобы выделить сообщения, которые выполняются несколько раз. Например, объект отправляет запрос, а второй объект выполнит внутренние действия несколько раз в зависимости от отправленных данных.
loop
a -> c
end
Визуализация:

Группировка Group используется для того, чтобы скомпоновать сообщения по смыслу. Например, на диаграмме может быть много взаимодействий и для того, чтобы было меньше путаницы можно подписать группы сообщений.
group
a -> c
end
Визуализация:

Можно группировать сами объекты. Часто используется для описания взаимодействия нескольких систем с микросервисами.
box Название
participant "Название 1"
participant "Название 2"
box end
Визуализация:

Полезные возможности PlantUML
Изменить цвет стрелок
-[#blue]>
-[#ff00ff]>
Визуализация:

Изменить цвет текста
A -> B: <color #f0f>Запрос</color>
B -->> A: <color #green>Ответ</color>
Визуализация:

Добавить подсказку
note right
REST: **some.adress.com:433/new**
end note
Визуализация:

Поставить разделительную черту
== Сохранение данных ==
Визуализация:

Пример разработки SD в PlantUML

Last updated