Диаграммы последовательностей
Диаграммы последовательностей визуализируют взаимодействие объектов во времени. Они показывают порядок сообщений, которыми обмениваются участники для выполнения определённой задачи или сценария.
Основные понятия
Участники
Участники представляют объекты или действующих лиц, вовлечённых во взаимодействие. Каждый участник имеет линию жизни — вертикальную пунктирную линию, идущую вниз, которая обозначает время.
Сообщения
Сообщения — это коммуникации между участниками, показанные горизонтальными стрелками между линиями жизни. Время течёт сверху вниз.
Полосы активации
Полосы активации (также называемые спецификациями выполнения) — это тонкие прямоугольники на линии жизни, показывающие, когда участник активно обрабатывает запрос.
Создание участников
Использование инструмента участников
Нажмите P для активации инструмента участников, затем нажмите на холсте для размещения участников.

Типы участников
Участники могут представлять разные типы сущностей:
- Actor — Пользователь или внешняя система (значок фигурки)
- Object — Экземпляр класса (прямоугольник)
- Component — Системный компонент (прямоугольник со стереотипом)
- Boundary — Граница интерфейса или системы
- Control — Логика процесса или контроллера
- Entity — Данные или доменный объект
Настройте тип участника в панели Инспектора.
Создание сообщений
Использование инструмента сообщений
Нажмите M для активации инструмента сообщений, затем:
- Нажмите на линию жизни исходного участника
- Перетащите к линии жизни целевого участника
- Отпустите для создания сообщения
Типы сообщений
| Тип | Стиль стрелки | Описание |
|---|---|---|
| Синхронное | Сплошная линия, заполненная стрелка | Отправитель ожидает ответа |
| Асинхронное | Сплошная линия, открытая стрелка | Отправитель продолжает без ожидания |
| Возвратное | Пунктирная линия, открытая стрелка | Ответ на синхронный вызов |
| Создание | Пунктирная линия, открытая стрелка к блоку | Создаёт нового участника |
| Уничтожение | Линия, заканчивающаяся X | Завершает участника |

Подписи сообщений
Дважды нажмите на сообщение для редактирования его подписи. Типичные форматы:
methodName()— Простой вызов методаmethodName(param1, param2)— Вызов с параметрамиresult := methodName()— Вызов с присваиванием возвращаемого значения[condition] methodName()— Условное сообщение (охранное условие)
Полосы активации
Полосы активации показывают период, в течение которого участник выполняет действие или ожидает ответа.
Добавление полос активации
- Выделите сообщение
- В Инспекторе включите «Show Activation»
- Полоса активации появится на линии жизни принимающего участника
Вложенные активации
Когда участник вызывает сам себя (рекурсивный вызов) или обрабатывает несколько вложенных вызовов, полосы активации могут быть наложены друг на друга.

Фрагменты
Фрагменты группируют сообщения для отображения условной логики, циклов или другого управления потоком.
Типы фрагментов
| Тип | Ключевое слово | Назначение |
|---|---|---|
| Альтернатива | alt | Ветвление if-else |
| Необязательный | opt | Необязательное выполнение (if без else) |
| Цикл | loop | Повторяющееся выполнение |
| Прерывание | break | Выход из объемлющего цикла |
| Параллельный | par | Параллельное выполнение |
| Критический | critical | Атомарная/критическая секция |
Создание фрагментов
- Выделите сообщения, которые хотите сгруппировать
- Щёлкните правой кнопкой мыши и выберите «Add Fragment» или используйте инструмент фрагментов
- Выберите тип фрагмента
- Добавьте условия/охранные выражения по необходимости

Охранные условия фрагментов
Охранные условия — это условия, показанные в квадратных скобках:
[x > 0]— Числовое условие[user.isAdmin]— Проверка свойства[else]— Ветвь по умолчанию/else в фрагментах alt
Переупорядочивание элементов
Перемещение участников
Перетаскивайте участников горизонтально для изменения их порядка. Связанные сообщения последуют за ними.
Перемещение сообщений
Перетаскивайте сообщения вертикально для изменения их порядка в последовательности. Это влияет на хронологию взаимодействия.
Лучшие практики
- Начните с основного потока — Смоделируйте успешный сценарий, затем добавьте альтернативы
- Сохраняйте читаемость — Ограничьтесь 5-7 участниками на диаграмму
- Используйте осмысленные имена — Подписывайте сообщения реальными именами методов или описаниями
- Показывайте возвратные сообщения — Особенно для синхронных вызовов, где важно возвращаемое значение
- Используйте фрагменты умеренно — Слишком много вложенных фрагментов снижает читаемость
- Добавляйте заметки — Используйте элементы заметок для пояснения сложной логики
Пример: Поток авторизации пользователя
Типичная последовательность входа может включать:
- Пользователь вводит учётные данные
- Клиент отправляет запрос на вход серверу
- Сервер проверяет через базу данных
- База данных возвращает запись пользователя
- Сервер создаёт сессию
- Сервер возвращает результат успеха/неудачи клиенту
- Клиент обновляет интерфейс
Этот поток демонстрирует синхронные вызовы, возвратные сообщения и возможные фрагменты alt для сценариев успеха/неудачи.