🧩
New! Render PlantUML diagrams directly inside GitHub with our official browser extension — No server. No tokens. No tracking. Zero permissions but clipboard. — Try it out and let us know what you think!

Диаграмма последовательности

Диаграммы последовательности в PlantUML полностью описываются текстом. Вы указываете участников и сообщения, которыми они обмениваются, а компоновка, интервалы и стрелки формируются автоматически.

Описание возможностей, доступных для всех типов диаграмм, см. в разделе общие команды.

Основные примеры

В диаграммах последовательности на языке PlantUML команда -> используется для отображения сообщения между двумя участниками, которые распознаются автоматически, и не обязательно должны быть объявлены заранее.

Используйте команду -->, чтобы изобразить пунктирную линию и повысить читаемость.

Для того, чтобы улучшить читаемость диаграммы, не меняя визуального представления, используйте команды в виде стрелок, которые направлены обратно <- или <--. Однако, обратите внимание на то, что такое утверждение об использовании этих команд справедливо только для диаграмм последовательности. Для других инструментов правила отличаются.

Объявление участников

При использовании ключевого слова participant возможно получить больший контроль над отображением участников.

Порядок перечисления участников задаёт также пороядок отображения участников по умолчанию.

Использование других ключевых слов (отличных от participant) позволяет изменить форму представления (отображения) участника:

Возможно переименовать участника используя ключевое слово as.

Также возможно изменить цвет фона участника.

Возможно изменить порядок следования участников с помощью ключевого слова order.

WARNING
 This translation need to be updated. 
WARNING

Объявление участника в многострочной форме

Вы можете объявить участника в многострочной форме.

[Ссылка QA-15232]

Использование небуквенных символов в названиях участников

Вы можете использовать кавычки для задания участников. Также Вы можете использовать ключевое слово as для присвоения псевдонимов к этим участникам.

Сообщения к самому себе

Участник может посылать сообщения сам себе.

Также возможно создание многострочных сообщений, используя \n.

[Ref. QA-1361]

Выравнивание текста

Расположение текста относительно стрелки можно указывать как left (лево), right (право) или center (центер) используя слово skinparam sequenceMessageAlign.

Вы также можете использовать direction или reverseDirection для выравнивания текста относительно направления стрелки. Больше подробнестей и примеров можно найти на странице skinparam.

Текст ответного сообщения под стрелкой

Вы можете разместить текст ответного сообщения под стрелкой используя команду skinparam responseMessageBelowArrow true.

Change Actor style

You can change the actor style from stick man (by default) to:

Stick man (by default)

Awesome man

[Ref. QA-10493]

Hollow man

[Ref. PR#396]

Изменение стиля стрелок

Можно изменить стиль стрелок следующими способами:

Изменить цвет стрелок

Вы можете изменить цвет отдельных стрелок, используя следующие правила:

Нумерация сообщений в последовательностях

Ключевое слово autonumber используется для автоматической нумерации сообщений.

Вы можете обозначить число с которого начнется отсчет autonumber <start>, а также число которое будет использоваться в качестве инкремента autonumber <start> <increment>.

Можно задавать формат чисел, указав его в двойных кавычках.

Форматирование выполнено с использованием класса Java DecimalFormat (0 означает цифру, # означает цифру или ноль если пусто).

При форматировании также можно использовать теги html.

Вы так же можете использовать autonumber stop и autonumber resume <increment> <format> чтобы соотсетственно остановить и продолжить автоматическое нумерование.

Ваше число, с которого начнется отсчет может быть последовательностью из двух или трех цифр, разделенных знаками ., ;, , или :. Также это могут одновременно два разных знака из этого списка. Например: 1.1.1 или 1.1:1.

Автоматически инкрементируется последняяя цифра из указанной последовательности.

Для того, чтобы инкрементировать первую цифру последовательности, укажите autonumber inc A. Для инкрементирования второй цифры последовательности укажите соответственно autonumber inc B.

Вы также можете использовать значение autonumber вместе с %autonumber% переменной:
[Ref. QA-7119]

Название, Заголовок и подвал страницы

Ключевое слово title используется, чтобы добавить название страницы.

Также страницы могут иметь заголовок и подвал с помощью ключевых слов header и footer.

Разбиение диаграмм

Ключевое слово newpage используется для разбиения диаграм на несколько изображений.

Вы можете указать название страницы сразу после ключевого слова newpage. Это название заменяет указанное ранее название, если таковое имеется.

Это очень полезно для печати длинных диаграмм на нескольких страницах.

(Примечание: это действительно работает. В превью показана только первая страница, но это из-за особенностей онлайн отображения.)

WARNING
 This translation need to be updated. 
WARNING

Группировка сообщений

Группировать сообщения возможно используя следующие ключевые слова:

Имеется возможность добавить текст который должен быть отображен в заголовке. (для group, смотрите следующий параграф 'Дополнительная метка группы').

Ключевое слово end используется для завершения группы.

Допустимо вложение группы в группу.

Дополнительная метка группы

Для group можно добавить дополнительный текст или метку, которые будут отображаться в заголовке. Для этого их надо указать между квадратными скобками [ и ].

[Ссылка QA-2503]

Partition across the entire width

You can use partition command to group messages horizontally across the entire width (full-width).

Messages are not grouped horizontally across the entire width (by default)

Grouping messages horizontally across the entire width (with teoz mode)

[Ref. GH-589]

Примечания в сообщениях

Можно помещать заметки к сообщениям, используя ключевые слова note left (заметка слева) или note right (заметка справа) сразу после сообщения.

Можно делать многострочные заметки используя ключевое слово end note для завершения заметки.

Другие примечания

Возможно размещение примечаний относительно участников с использованием ключевых слов note left of (разместить слева от), note right of (разместить права от) или note over (разместить над).

Возможно выделить примечание, изменив цвет фона.

Можно делать многострочные заметки используя ключевое слово end note для завершения заметки.

Изменение формы примечаний

Вы можете использовать hnote и rnote для изменения формы примечаний:

[Ref. QA-1765]

Заметка отображаемая поверх всех участников

Вы можете сделать заметку, отображаемую поверх всем участников, используя синтаксис:

[Ref. QA-9738]

Выравнивание нескольких заметок по одному уровню [/]

Вы можете выровнить несколько заметок по одному уровню используя синтаксис /:

[Ref. QA-354]

Creole и HTML

Так же можно использовать форматирование на Creole:

WARNING
 This translation need to be updated. 
WARNING

Разделитель

Вы можете использовать разделитель ==, чтобы разбить диаграмму на несколько логических этапов.

Ссылки

Вы можете использовать ссылки в диаграммах с помощью ключевого слова ref over.

Задержка на диаграммах

Вы можете использовать конструкцию ... для представления временной задержки в процессе на диаграмме. При необходимости можно снабдить задержку комментарием.

Перенос текста

По умолчанию текст сообщения отображается в одну строку.

Перенос текста для его отображения на нескольких строках можно сделать:

Message text spans beyond the involved participants

You can use sequenceMessageSpan command to allow message text to span beyond the involved participants.

Without sequenceMessageSpan (by default)

With sequenceMessageSpan (on teoz mode)

[Ref. GH-2386]

Промежутки

Вы можете использовать ||| чтобы показать промежутки в диаграммах..

Так же возможно указать промежуток в пикселях.

Активация и деактивация линии существования

activate и deactivate используются чтобы обозначить активацию участника.

Линия существования появляется в момент активации участника.

activate и deactivate применяются к предыдущему сообщению.

destroy обозначает конец линии существования участника.

Можно использовать вложенные линии существования, и можно указывать цвет для этих линий.

Автоактивация также возможна, для этого используйте команду autoactivate on. Для определения конца активации используются команды return:

Return

Команда return генерирует сообщение возврата с необязательной текстовой меткой.

Точкой возврата является та линия, которая вызвала последнюю активацию текущей линии жизни.

Синтаксис - return label, где label, если указано, является любой строкой, приемлемой для обычных сообщений.

Отображение создания участника процессом

Вы можете использовать ключевое слово create перед декларацией сообщения для акцентирования факта, что принимающий участник создается данным сообщением.

Быстрый синтаксис для активации, деактивации и создания

Сразу после указания целевого участника можно использовать следующий синтаксис:

Затем вы можете смешивать активацию и деактивацию в одной строке

[Ссылка на QA-4834, QA-9573 и QA-13234]

Входящие и исходящие сообщения

Вы можете использовать входящие или исходящие стрелки если вы хотите сфокусироваться на части диаграммы.

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

Вы также можете использовать следующий синтаксис:

Короткие стрелки для входящих и исходящих сообщений

Вы можете использовать короткие стрелки с помощью ?

[Ссылка на QA-310]

Якоря и длительность

С помощью teoz можно добавить якоря на диаграмму и использовать якоря для указания длительности

Для указания прагмы можно использовать опцию командной строки -P

java -jar plantuml.jar -Pteoz=true

[Ref. issue-582]

Стереотипы и отметки

Можно добавить стереотипы к участникам используя << и >>.

В стереотипе вы можете добавить отмеченного участника в цветном круге используя синтаксис (X,color).

По умолчанию, для отображения стереотипа используются кавычки "ёлочки". Вы можете изменить это поведение, используя skinparam guillemet:

Расположение стереотипов

Чтобы указать желаемое расположение стереотипа используйте команды (top или bottom) вместе с командой skinparam stereotypePosition.

Расположение сверху (настройка по умолчанию)

Расположение снизу

[См. QA-18650]

Больше информации в заголовках

Вы можете использовать форматирование на Creole для заголовков.

C помощью последовательности символов \n вы можете добавить перевод строки в заголовок.
Вы также можете задать заголовок на нескольких строках, используя ключевые слова title и end title .

Группировка участников

Можно создать прямоугольник вокруг участников, используя комманды box и end box.

Вы можете задать настраиваемый заголовок и цвет фона в прямоугольнике группировки после команды box.

Архитектура teoz позволяет также создавать вложенные группы — группы внутри групп — например:

Удаление подвала

Вы можете использовать ключевое слово hide footbox для удаления подвала из диаграммы.

Skinparam

Вы можете использовать команду skinparam для изменения шрифтов и цветов диаграммы

Вы можете использовать данную команду :

Вы можете изменить другие параметры отображения, как видно из следующих примеров:

WARNING
 This translation need to be updated. 
WARNING

Изменение отступов

Вы можете изменить некоторые настройки отступов

*[Ref. [QA-5493](https://forum.plantuml.net/5493/provide-skinparam-between-participants-sequence-diagrams)]*

Приложение: Примеры всех типов стрелок

Обычная стрелка

Возвращающаяся стрелка

Входящие и исходящие сообщения (с '[', ']')

Входящие сообщения (с '[')

Исходящие сообщения (с ']')

Короткие входящие и исходящие сообщения (с '?')

Короткие входящие (с '?')

Короткие исходящие (с '?')

Разные стили отображения

По умолчанию

LifelineStrategy

Этот стиль и используется по умолчанию
[Ссылка на QA-9016]

Для того, чтобы сделать вертикальные линии сплошными используйте команду skinparam lifelineStrategy solid

[Ссылка на QA-2794]

style strictuml

Для отображения в строгом соответствии с UML (также меняется стиль стрелок: кончики отображаются как треугольники), вы можете использовать
[ссылка QA-1047]

*[Ref. [GH-2266](https:github.com/plantuml/plantuml/pull/2266) and [GH-2662](https:github.com/plantuml/plantuml/issues/2662)]*
WARNING
 This translation need to be updated. 
WARNING

Скрытие ни с кем не связанных участников

По умолчанию отображаются все участники.

Но Вы можете скрыть таких участников использя команду hide unlinked.

[Ref. QA-4247]

Цвет сгруппированных сообщений

Можно задать цвет для сгруппированных сообщений:

[Ref. QA-4750 and QA-6410]

Основной фрейм

[Ref. QA-4019 and Issue#148]

Slanted or odd arrows

You can use the (nn) option (before or after arrow) to make the arrows slanted, where nn is the number of shift pixels.

[Available only after v1.2022.6beta+]

[Ref. QA-14145]

[Ref. QA-6684]

[Ref. QA-1072]

Параллельные сообщения (в архитектуре teoz)

Чтобы отображать команды параллельно используйте команду & (амперсанд) в окружении teoz:

(См. подробнее про архитектуру Teoz)

Style for Solid Lifeline

By default

Solid Lifeline using style

[Ref. GH-2266 and GH-2662]