Справочник / Диаграмма последовательностей UML
Диаграмма последовательностей UML: синтаксис и примеры
Обмен сообщениями между участниками во времени. Участники идут слева направо в порядке объявления. Сообщение: отправитель, стрелка, получатель, двоеточие и текст. Тип участника задаёт его значок по нотации UML.
Пример
@startuml autonumber actor "Пользователь" as U boundary "Веб-клиент" as W control "Сервис авторизации" as A entity "Сессия" as S database "База данных" as D U -> W : нажимает «Войти» activate W W -> A : POST /login activate A A -> D : SELECT user activate D D --> A : запись пользователя deactivate D alt пароль верный A -> S : создать A --> W : 200 OK, токен W --> U : открыть профиль else ошибка A --> W : 401 Unauthorized W --> U : показать ошибку end deactivate A deactivate W note over W, A : токен действует 24 часа @enduml
Готовые примеры
- Диаграмма последовательности авторизацииUML-диаграмма последовательности входа пользователя
- Диаграмма последовательности оформления заказаПример диаграммы последовательности для интернет-магазина
Конструкции
Участники разных типов
Также participant, collections, queue.
actor "Пользователь" as U boundary "Форма" as F control "Контроллер" as C entity "Заказ" as E database "БД" as D
Сообщение и ответ
Сплошная стрелка — вызов, пунктирная — ответ.
U -> F : ввод F --> U : результат
Асинхронное сообщение
C ->> D : событие
Активация
Сокращение: C -> D ++ : запрос и D --> C -- : данные.
C -> D : запрос activate D D --> C : данные deactivate D
Создание участника
create entity "Сессия" as S C -> S : new
Альтернатива
Также opt, loop, par, break, critical, group.
alt успех C --> U : 200 else ошибка C --> U : 500 end
Цикл
loop каждые 5 с U -> C : ping end
Заметка
note right of C : текст note over U, C : общая
Разделитель и задержка
== Этап 2 == ...5 минут спустя...
Нумерация
Пишется перед сообщениями.
autonumber
Стрелки
| -> | синхронное сообщение |
| --> | ответ (пунктир) |
| ->> | асинхронное сообщение (тонкий наконечник) |
| ->x | потерянное сообщение |
| <-> | двунаправленное |
| -[#red]> | цветная стрелка |
Общее
| @startuml / @enduml | начало и конец диаграммы |
| ' текст | комментарий |
| /' … '/ | многострочный комментарий |
| title Заголовок | заголовок над диаграммой |
| left to right direction | раскладка слева направо |
Другие виды диаграмм
- Диаграмма классов UMLКлассы, атрибуты, операции и связи между ними
- Диаграмма объектов UMLЭкземпляры классов и их значения в момент времени
- Диаграмма пакетов UMLПакеты (модули) системы и зависимости между ними
- Диаграмма компонентов UMLКомпоненты, интерфейсы и зависимости
- Диаграмма развёртывания UMLУзлы, среды выполнения и артефакты на них
- ER-диаграмма (сущность–связь)Таблицы, ключи и кратность связей (нотация IE)
- Диаграмма прецедентов UMLАктёры и варианты использования системы
- Диаграмма деятельности UMLДействия, решения, параллельные ветки и дорожки
- Диаграмма состояний UMLЖизненный цикл объекта и переходы
- Временная диаграмма UML (timing)Изменение состояний участников во времени
- Диаграмма ГантаПлан работ по дням с зависимостями и вехами
- Интеллект-карта (mind map)Идеи вокруг одной темы
- WBS — структура декомпозиции работДекомпозиция проекта на пакеты работ
- Сетевая диаграмма (nwdiag)Сети, адреса и подключённые к ним серверы
- Визуализация JSONСтруктура JSON-документа в виде дерева