Медиаблог /

Диаграмма последовательности UML: что это, нотация и как построить

17 сентября 2026

Диаграмма последовательности UML: что это, нотация и как построить

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

Монитор с диаграммой последовательности UML — участники, стрелки и фрейм alt

Что такое диаграмма последовательности UML

Диаграмма последовательности UML описывает динамику системы: какие объекты участвуют во взаимодействии, какие сообщения они обмениваются и в каком порядке. Стандарт UML 2.x (Object Management Group) относит Sequence Diagram к категории диаграмм взаимодействия — тех, что фиксируют поведение системы во времени, а не её структуру.

image

Учитесь бесплатно за счёт государства

Экономия до 100 000 ₽ на любой программе

Выбрать курс

Применяется там, где важен временной порядок событий: проектирование архитектуры ПО, описание REST API, документирование интеграций между сервисами, моделирование микросервисных цепочек вызовов. Основная аудитория — системные аналитики, разработчики ПО и архитекторы.

Сравнение диаграммы последовательности и диаграммы активности UML — два мини-примера

Диаграмма последовательности и диаграмма активностей: ключевые отличия

Sequence Diagram отвечает на вопрос «кто с кем и когда»: акцент — на взаимодействии объектов и порядке сообщений. Диаграмма активностей (Activity Diagram) отвечает на «что происходит»: акцент — на логике процесса, ветвлениях и потоках управления. Sequence выбирают для API-вызовов и интеграций микросервисов; Activity — для описания бизнес-процессов и сложной условной логики.

Элементы диаграммы последовательности UML

Диаграмма последовательности 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.

Участник и актор в диаграмме последовательности UML — элементы нотации

Линия жизни и полоса активности

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

Линия жизни и полоса активации в диаграмме последовательности UML

Синхронные, асинхронные и возвратные сообщения

Синхронный вызов (->) — сплошная закрашенная стрелка; отправитель ждёт ответа перед продолжением работы. Пример: браузер отправляет HTTP-запрос на сервер. Асинхронное сообщение (->>) — незакрашенная стрелка; ответ не требуется. Пример: отправка события в Kafka-очередь. Возвратное сообщение (—>>) — пунктирная стрелка; ответ после обработки. При синхронном вызове возврат необязателен, но повышает читаемость схемы.

Нотация диаграммы последовательности UML: типы стрелок

Каждый тип стрелки в PlantUML задаётся отдельным синтаксисом. Таблица 2 показывает соответствие между кодом, визуальным типом и областью применения.

Синтаксис PlantUML
Тип
Стрелка
Применение
-> Синхронный вызов Закрашенная, сплошная HTTP-запрос, метод с ожиданием ответа
->> Асинхронное сообщение Незакрашенная, сплошная Событие в Kafka-топик, очередь
—>> Возврат Незакрашенная, пунктирная Ответ после выполнения метода
-x Уничтожение объекта Крест на конце Завершение жизненного цикла

Дополнительные возможности PlantUML: autonumber нумерует стрелки автоматически; note right of X: текст добавляет примечание; skinparam управляет цветами и шрифтами всей схемы.

Системный аналитик применяет диаграмму последовательности UML каждый день — для описания API, интеграций и архитектурных сценариев. Освоить нотацию и проектирование систем с нуля, без отрыва от работы, можно через каталог программ АМСЗ — в рамках федерального проекта «Кадры».

Типы стрелок диаграммы последовательности UML: синхронный вызов, асинхронное и возврат

Фреймы взаимодействий: alt, opt, par, loop

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

Инфографика операторов фреймов UML: alt, opt, par и loop с описаниями на русском

alt и opt: условные и опциональные блоки

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

Диаграмма последовательности UML с фреймом alt — ветвление по условию успех и ошибка

par и loop: параллельность и итерации

par описывает параллельные действия — аналог потоков выполнения: par / else / end, где каждый раздел обрабатывается одновременно. loop задаёт повторяющиеся действия — аналог for/while: loop 5 раз / end. Оба оператора часто применяются при документировании микросервисных архитектур и асинхронных процессов.

Как построить диаграмму последовательности UML

Хотите сменить профессию или повысить квалификацию?

Федеральный проект «Активные меры содействия занятости» даёт возможность пройти обучение бесплатно за счёт государства

  • Программы от ведущих вузов России — от 2 месяцев
  • Удостоверение или диплом установленного образца
  • Центр карьеры: 7 500+ вакансий, помощь с трудоустройством
Оставить заявку
image

Построение проходит в шесть шагов: определить участников и их роли → расставить в порядке инициирования → добавить сообщения с типами стрелок → обозначить полосы активности → обернуть условия и циклы во фреймы взаимодействий → проверить сценарий на полноту.

Три типичные ошибки: больше семи участников на одной диаграмме — схема перегружается и плохо читается; устаревшие обозначения UML 1.x вместо 2.x; расхождение между диаграммой и реальной архитектурой проекта. По инструментам: начинать удобнее с draw.io — без синтаксиса, перетаскиванием фигур. Когда объектов становится много, переходить на PlantUML: текстовый формат версионируется в git и обновляется вместе с кодом.

Алгоритм построения диаграммы последовательности UML в шесть шагов — инфографика

Примеры диаграммы последовательности UML

Два практических сценария покрывают большинство задач: авторизация пользователя (браузер → сервер → БД) и REST API-вызов. Первый подходит для начинающих, второй — для описания микросервисных интеграций. Оба реализуются в PlantUML за десять строк кода; разбираем первый с полным примером ниже.

Пример: авторизация пользователя на PlantUML

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

Пример диаграммы последовательности UML — авторизация через браузер сервер и базу данных

Инструменты для создания диаграммы последовательности онлайн

Четыре основных инструмента различаются по типу интерфейса и порогу входа.

Инструмент
Тип интерфейса
Синтаксис
Стоимость
Для кого
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 без регистрации.

Онлайн-редактор PlantUML — код диаграммы слева и готовая диаграмма последовательности справа
Майнд-карта элементов нотации диаграммы последовательности UML — все компоненты

Часто задаваемые вопросы

Что такое sequence diagram простыми словами?

Схема, показывающая, кто с кем «переговаривается» в системе и в каком порядке. Участники — вверху, стрелки — запросы и ответы, время идёт вниз по оси.

Чем диаграмма последовательности отличается от диаграммы классов?

Диаграмма классов описывает статическую структуру: классы, атрибуты, связи. Sequence Diagram — динамику: кто кому и в каком порядке шлёт сообщение. Первая отвечает «что есть», вторая — «как взаимодействует».

Для чего нужен оператор alt в диаграмме UML?

Alt моделирует альтернативные сценарии: если условие выполняется — один путь, иначе — другой. Аналог if/else в коде. Синтаксис PlantUML: alt случай 1 / else случай 2 / end.

Чем синхронное сообщение отличается от асинхронного?

Синхронный вызов (->) — отправитель ждёт ответа перед продолжением. Асинхронный (->>) — не ждёт. Пример асинхронного: отправка события в Kafka-топик или очередь сообщений.

Можно ли бесплатно построить диаграмму последовательности онлайн?

Да. PlantUML доступен на plantuml.com без регистрации. draw.io (diagrams.net) — бесплатный графический редактор без установки. Оба подходят для учебных и рабочих задач.

Что такое линия жизни в диаграмме UML?

Вертикальный пунктир под каждым объектом — временная шкала: чем ниже, тем позже происходит событие. На линии размещаются полосы активности и стрелки входящих и исходящих сообщений.

Как добавить автоматическую нумерацию сообщений в PlantUML?

Оператор autonumber в начале диаграммы пронумерует все стрелки. Расширенный формат: autonumber 10 5 «<b>(##)» — задаёт начало, шаг и стиль номера.

Когда выбирать PlantUML, а когда draw.io?

PlantUML предпочтительнее при большом числе объектов и при хранении диаграмм в git-репозитории. draw.io — для быстрого старта без изучения синтаксиса и для небольших наглядных схем.

Подайте заявку —
забронируйте место в группе

45 000 мест на 2026 год. Бесплатное обучение по федеральному проекту «Активные меры содействия занятости»

  • Онлайн
  • От 2 месяцев
  • Бесплатно
  • Диплом
Учиться бесплатно
icon