Диаграмма последовательности UML (Sequence Diagram) — тип диаграммы взаимодействия стандарта UML 2.x, разработанного Object Management Group. Она показывает порядок обмена сообщениями между объектами системы; время движется вертикально вниз. В статье разберём нотацию, восемь базовых элементов и инструменты построения — PlantUML и draw.io.
Диаграмма последовательности UML описывает динамику системы: какие объекты участвуют во взаимодействии, какие сообщения они обмениваются и в каком порядке. Стандарт UML 2.x (Object Management Group) относит Sequence Diagram к категории диаграмм взаимодействия — тех, что фиксируют поведение системы во времени, а не её структуру.
Учитесь бесплатно за счёт государства
Экономия до 100 000 ₽ на любой программе
Применяется там, где важен временной порядок событий: проектирование архитектуры ПО, описание REST API, документирование интеграций между сервисами, моделирование микросервисных цепочек вызовов. Основная аудитория — системные аналитики, разработчики ПО и архитекторы.

Sequence Diagram отвечает на вопрос «кто с кем и когда»: акцент — на взаимодействии объектов и порядке сообщений. Диаграмма активностей (Activity Diagram) отвечает на «что происходит»: акцент — на логике процесса, ветвлениях и потоках управления. Sequence выбирают для API-вызовов и интеграций микросервисов; Activity — для описания бизнес-процессов и сложной условной логики.
Диаграмма последовательности UML содержит восемь базовых элементов нотации. Полный список: Объект, Актор, Линия жизни, Полоса активности, Сообщение, Фрейм взаимодействий, Примечание, Уничтожение объекта. Таблица 1 показывает визуальное обозначение, функцию и синтаксис PlantUML каждого; детальный разбор — в подразделах ниже.
| Элемент |
Визуал |
Функция |
PlantUML |
|---|---|---|---|
| Объект | Прямоугольник «объект:класс» | Участник взаимодействия | participant «X» as x |
| Актор | Фигурка человека | Внешний участник вне системы | actor «User» as u |
| Линия жизни | Вертикальный пунктир | Временная ось объекта | (автоматически) |
| Полоса активности | Прямоугольник на пунктире | Период выполнения действия | activate B или B++ |
| Сообщение | Горизонтальная стрелка | Вызов или передача данных | ->, ->>, —>> |
| Фрейм взаимодействий | Прямоугольник с оператором | Группировка сообщений | alt, opt, par, loop |
| Примечание | Жёлтый блок | Пояснение к элементу | note right of X: текст |
| Уничтожение объекта | Крест X | Конец линии жизни | -x |
Объект изображается прямоугольником с подписью «объект:класс»; инициатор взаимодействия ставится крайним слева. Активно взаимодействующих участников размещают ближе друг к другу. Актор — фигурка человека — обозначает внешнего участника вне системы: пользователя или другую систему. В PlantUML доступны типы: participant, actor, database, queue, boundary.

Линия жизни — вертикальный пунктир под каждым объектом, ось времени сверху вниз; одна на участника, линии не пересекаются. Полоса активности — узкий прямоугольник, наложенный на пунктир в тот момент, когда объект выполняет действие. В PlantUML: activate B включает полосу, deactivate B или B— её завершает.

Синхронный вызов (->) — сплошная закрашенная стрелка; отправитель ждёт ответа перед продолжением работы. Пример: браузер отправляет HTTP-запрос на сервер. Асинхронное сообщение (->>) — незакрашенная стрелка; ответ не требуется. Пример: отправка события в Kafka-очередь. Возвратное сообщение (—>>) — пунктирная стрелка; ответ после обработки. При синхронном вызове возврат необязателен, но повышает читаемость схемы.
Каждый тип стрелки в PlantUML задаётся отдельным синтаксисом. Таблица 2 показывает соответствие между кодом, визуальным типом и областью применения.
| Синтаксис PlantUML |
Тип |
Стрелка |
Применение |
|---|---|---|---|
| -> | Синхронный вызов | Закрашенная, сплошная | HTTP-запрос, метод с ожиданием ответа |
| ->> | Асинхронное сообщение | Незакрашенная, сплошная | Событие в Kafka-топик, очередь |
| —>> | Возврат | Незакрашенная, пунктирная | Ответ после выполнения метода |
| -x | Уничтожение объекта | Крест на конце | Завершение жизненного цикла |
Дополнительные возможности PlantUML: autonumber нумерует стрелки автоматически; note right of X: текст добавляет примечание; skinparam управляет цветами и шрифтами всей схемы.
Системный аналитик применяет диаграмму последовательности UML каждый день — для описания API, интеграций и архитектурных сценариев. Освоить нотацию и проектирование систем с нуля, без отрыва от работы, можно через каталог программ АМСЗ — в рамках федерального проекта «Кадры».

Фрейм взаимодействий (Combined Fragment) — прямоугольник с именем оператора в верхнем левом углу. Внутри — один или несколько фрагментов, разделённых пунктирными полосами; у каждого может быть условие (guard) в квадратных скобках. Фреймы позволяют описать условную логику, параллельность и циклы, не выходя за рамки нотации.

alt моделирует альтернативные сценарии — аналог if/else в коде: alt успех / else ошибка / end. Каждый фрагмент выполняется, только если его guard истинен. opt — опциональный блок без ветки else: opt [токен истёк] / end. Выполняется при истинном условии; иначе блок пропускается полностью.

par описывает параллельные действия — аналог потоков выполнения: par / else / end, где каждый раздел обрабатывается одновременно. loop задаёт повторяющиеся действия — аналог for/while: loop 5 раз / end. Оба оператора часто применяются при документировании микросервисных архитектур и асинхронных процессов.
Хотите сменить профессию или повысить квалификацию?
Федеральный проект «Активные меры содействия занятости» даёт возможность пройти обучение бесплатно за счёт государства
Построение проходит в шесть шагов: определить участников и их роли → расставить в порядке инициирования → добавить сообщения с типами стрелок → обозначить полосы активности → обернуть условия и циклы во фреймы взаимодействий → проверить сценарий на полноту.
Три типичные ошибки: больше семи участников на одной диаграмме — схема перегружается и плохо читается; устаревшие обозначения UML 1.x вместо 2.x; расхождение между диаграммой и реальной архитектурой проекта. По инструментам: начинать удобнее с draw.io — без синтаксиса, перетаскиванием фигур. Когда объектов становится много, переходить на PlantUML: текстовый формат версионируется в git и обновляется вместе с кодом.

Два практических сценария покрывают большинство задач: авторизация пользователя (браузер → сервер → БД) и REST API-вызов. Первый подходит для начинающих, второй — для описания микросервисных интеграций. Оба реализуются в PlantUML за десять строк кода; разбираем первый с полным примером ниже.
Участники: actor Браузер, participant Сервер, database БД. Сценарий: браузер отправляет POST /login на сервер (синхронный вызов ->) → сервер выполняет SELECT в БД → БД возвращает данные (—>>) → сервер отдаёт session token браузеру. Полосы активности на сервере обозначают период обработки. Готовая диаграмма последовательности UML для этого сценария занимает около 12 строк PlantUML-кода.

Четыре основных инструмента различаются по типу интерфейса и порогу входа.
| Инструмент |
Тип интерфейса |
Синтаксис |
Стоимость |
Для кого |
|---|---|---|---|---|
| PlantUML | Текстовый язык | .puml, git-совместим | Бесплатно | Разработчики, аналитики |
| draw.io (diagrams.net) | Drag-and-drop | Нет | Бесплатно | Новички, небольшие схемы |
| Microsoft Visio | Drag-and-drop | Нет | Платно | Корпоративные пользователи |
| Mermaid.js | Текстовый язык | .md, git-совместим | Бесплатно | Разработчики, Markdown-проекты |
Новичкам подойдёт draw.io — интерфейс перетаскивания, синтаксис учить не нужно. Для масштабируемых проектов лучше PlantUML: диаграммы хранятся как текст и обновляются вместе с кодом в git-репозитории. Онлайн-песочница доступна на plantuml.com/sequence-diagram без регистрации.


Схема, показывающая, кто с кем «переговаривается» в системе и в каком порядке. Участники — вверху, стрелки — запросы и ответы, время идёт вниз по оси.
Диаграмма классов описывает статическую структуру: классы, атрибуты, связи. Sequence Diagram — динамику: кто кому и в каком порядке шлёт сообщение. Первая отвечает «что есть», вторая — «как взаимодействует».
Alt моделирует альтернативные сценарии: если условие выполняется — один путь, иначе — другой. Аналог if/else в коде. Синтаксис PlantUML: alt случай 1 / else случай 2 / end.
Синхронный вызов (->) — отправитель ждёт ответа перед продолжением. Асинхронный (->>) — не ждёт. Пример асинхронного: отправка события в Kafka-топик или очередь сообщений.
Да. PlantUML доступен на plantuml.com без регистрации. draw.io (diagrams.net) — бесплатный графический редактор без установки. Оба подходят для учебных и рабочих задач.
Вертикальный пунктир под каждым объектом — временная шкала: чем ниже, тем позже происходит событие. На линии размещаются полосы активности и стрелки входящих и исходящих сообщений.
Оператор autonumber в начале диаграммы пронумерует все стрелки. Расширенный формат: autonumber 10 5 «<b>(##)» — задаёт начало, шаг и стиль номера.
PlantUML предпочтительнее при большом числе объектов и при хранении диаграмм в git-репозитории. draw.io — для быстрого старта без изучения синтаксиса и для небольших наглядных схем.
Подайте заявку —
забронируйте место в группе
45 000 мест на 2026 год. Бесплатное обучение по федеральному проекту «Активные меры содействия занятости»