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) позволяет изменить форму представления (отображения) участника:
actorboundarycontrolentitydatabasecollectionsqueue
as.
Также возможно изменить цвет фона участника.
order.
WARNING
This translation need to be updated. WARNING
Объявление участника в многострочной форме
Вы можете объявить участника в многострочной форме.
Использование небуквенных символов в названиях участников
Вы можете использовать кавычки для задания участников. Также Вы можете использовать ключевое слово as для присвоения псевдонимов к этим участникам.
Сообщения к самому себе
Участник может посылать сообщения сам себе.
Также возможно создание многострочных сообщений, используя \n.
Выравнивание текста
Расположение текста относительно стрелки можно указывать как 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:
- an awesome man with the
skinparam actorStyle awesomecommand; - a hollow man with the
skinparam actorStyle hollowcommand.
Stick man (by default)
Awesome man
Hollow man
Изменение стиля стрелок
Можно изменить стиль стрелок следующими способами:
- закончить стрелку с помощью
xдля обозначения потерянного сообщения - использовать
\или/вместо<или>для создания только верхней или нижней части стрелки - повторить окончание стрелки (например,
>>or//) для тонкой отрисовки - использовать
--вместо-для создания пунктирной стрелки - заканчивать символом "o" во главе стрелки
- использовать двунаправленные стрелки
<->
Изменить цвет стрелок
Вы можете изменить цвет отдельных стрелок, используя следующие правила:
Нумерация сообщений в последовательностях
Ключевое слово autonumber используется для автоматической нумерации сообщений.
autonumber <start>, а также число которое будет использоваться в качестве инкремента autonumber <start> <increment>.
DecimalFormat
(0 означает цифру, # означает цифру или ноль если пусто).
При форматировании также можно использовать теги html.
autonumber stop и autonumber resume <increment> <format> чтобы соотсетственно остановить и продолжить автоматическое нумерование.
., ;, , или :. Также это могут одновременно два разных знака из этого списка. Например: 1.1.1 или 1.1:1.
Автоматически инкрементируется последняяя цифра из указанной последовательности.
Для того, чтобы инкрементировать первую цифру последовательности, укажите autonumber inc A. Для инкрементирования второй цифры последовательности укажите соответственно autonumber inc B.
autonumber вместе с %autonumber% переменной:
Название, Заголовок и подвал страницы
Ключевое слово title используется, чтобы добавить название страницы.
Также страницы могут иметь заголовок и подвал с помощью ключевых слов header и footer.
Разбиение диаграмм
Ключевое слово newpage используется для разбиения диаграм на несколько изображений.
Вы можете указать название страницы сразу после ключевого слова newpage. Это название заменяет указанное ранее название, если таковое имеется.
Это очень полезно для печати длинных диаграмм на нескольких страницах.
(Примечание: это действительно работает. В превью показана только первая страница, но это из-за особенностей онлайн отображения.)
WARNING
This translation need to be updated. WARNING
Группировка сообщений
Группировать сообщения возможно используя следующие ключевые слова:
alt/elseoptloopparbreakcriticalgroup, соответствует тексту который должен быть отображен
group, смотрите следующий параграф 'Дополнительная метка группы').
Ключевое слово end используется для завершения группы.
Допустимо вложение группы в группу.
Дополнительная метка группы
Для group можно добавить дополнительный текст или метку, которые будут отображаться в заголовке. Для этого их надо указать между квадратными скобками [ и ].
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)
Примечания в сообщениях
Можно помещать заметки к сообщениям, используя ключевые слова note left (заметка слева)
или note right (заметка справа) сразу после сообщения.
Можно делать многострочные заметки используя ключевое слово end note для завершения заметки.
Другие примечания
Возможно размещение примечаний относительно участников с использованием ключевых слов note left of (разместить слева от), note right of (разместить права от) или note over (разместить над).
Возможно выделить примечание, изменив цвет фона.
Можно делать многострочные заметки используя ключевое слово end note для завершения заметки.
Изменение формы примечаний
Вы можете использовать hnote и rnote для изменения формы примечаний:
hnoteдля примечания в виде шестиугольника;rnoteдля примечания в виде прямоугольника.
Заметка отображаемая поверх всех участников
Вы можете сделать заметку, отображаемую поверх всем участников, используя синтаксис:
note across: note_description
Выравнивание нескольких заметок по одному уровню [/]
Вы можете выровнить несколько заметок по одному уровню используя синтаксис /:
- без
/(по умолчанию заметки не выравниваются)
- с
/(заметки выровнены)
Creole и HTML
Так же можно использовать форматирование на Creole:
WARNING
This translation need to be updated. WARNING
Разделитель
Вы можете использовать разделитель ==, чтобы разбить диаграмму на несколько логических этапов.
Ссылки
Вы можете использовать ссылки в диаграммах с помощью ключевого слова ref over.
Задержка на диаграммах
Вы можете использовать конструкцию ... для представления временной задержки в процессе на диаграмме.
При необходимости можно снабдить задержку комментарием.
Перенос текста
По умолчанию текст сообщения отображается в одну строку.
Перенос текста для его отображения на нескольких строках можно сделать:
- вручную, добавив
\nв месте разрыва строки; - автоматически, установив максимальное количество символов в строке с использованием параметра
maxMessageSize. При этом перенос осуществляется по словам.
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)
Промежутки
Вы можете использовать ||| чтобы показать промежутки в диаграммах..
Так же возможно указать промежуток в пикселях.
Активация и деактивация линии существования
activate и deactivate используются чтобы обозначить активацию участника.
Линия существования появляется в момент активации участника.
activate и deactivate применяются к предыдущему сообщению.
destroy обозначает конец линии существования участника.
autoactivate on. Для определения конца активации используются команды return:
Return
Команда return генерирует сообщение возврата с необязательной текстовой меткой.
Точкой возврата является та линия, которая вызвала последнюю активацию текущей линии жизни.
Синтаксис - return label, где label, если указано, является любой строкой, приемлемой для обычных сообщений.
Отображение создания участника процессом
Вы можете использовать ключевое слово create перед декларацией сообщения для акцентирования факта, что принимающий участник создается данным сообщением.
Быстрый синтаксис для активации, деактивации и создания
Сразу после указания целевого участника можно использовать следующий синтаксис:
++Активировать цель (опционально за этим может следовать цвет)--Деактивировать источник**Создать экземпляр цели!!Уничтожить экземпляр цели
Входящие и исходящие сообщения
Вы можете использовать входящие или исходящие стрелки если вы хотите сфокусироваться на части диаграммы.
Используйте квадратные скобки для указания левой "[" или правой "]" стороны диаграммы
Короткие стрелки для входящих и исходящих сообщений
Вы можете использовать короткие стрелки с помощью ?
Якоря и длительность
С помощью teoz можно добавить якоря на диаграмму и использовать якоря для указания длительности
-P
java -jar plantuml.jar -Pteoz=true
[Ref. issue-582]
Стереотипы и отметки
Можно добавить стереотипы к участникам используя << и >>.
В стереотипе вы можете добавить отмеченного участника в цветном круге используя синтаксис (X,color).
guillemet:
Расположение стереотипов
Чтобы указать желаемое расположение стереотипа используйте команды (top или bottom) вместе с командой skinparam stereotypePosition.
Расположение сверху (настройка по умолчанию)
Расположение снизу
Больше информации в заголовках
Вы можете использовать форматирование на Creole для заголовков.
\n вы можете добавить перевод строки в заголовок.
title и
end title .
Группировка участников
Можно создать прямоугольник вокруг участников, используя комманды box и
end box.
Вы можете задать настраиваемый заголовок и
цвет фона в прямоугольнике группировки после команды box.
Удаление подвала
Вы можете использовать ключевое слово hide footbox для удаления подвала из диаграммы.
Skinparam
Вы можете использовать команду skinparam для изменения шрифтов и цветов диаграммы
Вы можете использовать данную команду :
- В определении диаграммы, как любую другую команду,
- В подключенном файле,
- В конфигурационном файле, указанном в командной строке в задании ANT.
WARNING
This translation need to be updated. WARNING
Изменение отступов
Вы можете изменить некоторые настройки отступов
Приложение: Примеры всех типов стрелок
Обычная стрелка
Возвращающаяся стрелка
Входящие и исходящие сообщения (с '[', ']')
Входящие сообщения (с '[')
Исходящие сообщения (с ']')
Короткие входящие и исходящие сообщения (с '?')
Короткие входящие (с '?')
Короткие исходящие (с '?')
Разные стили отображения
По умолчанию
LifelineStrategy
- nosolid
- solid
skinparam lifelineStrategy solid
style strictuml
Для отображения в строгом соответствии с UML (также меняется стиль стрелок: кончики отображаются как треугольники), вы можете использоватьskinparam style strictuml
WARNING
This translation need to be updated. WARNING
Скрытие ни с кем не связанных участников
По умолчанию отображаются все участники.
hide unlinked.
Цвет сгруппированных сообщений
Можно задать цвет для сгруппированных сообщений:
Основной фрейм
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+]
Параллельные сообщения (в архитектуре teoz)
Чтобы отображать команды параллельно используйте команду & (амперсанд) в окружении teoz:
Style for Solid Lifeline
By default
Solid Lifeline using style