Многоуровневая группировка участников на sequence-диаграмме (в plantUML)

Последнее время часто замечаю, что многие системные аналитики не выделяют на sequence диаграмме (в plantUML) границы Систем и сервисов, а также не выделяют внешние сервисы. В результате, открывая чужие Sequence, приходится тратить много времени чтобы понять, что-же к чему относится.
Поэтому сейчас расскажу как это сделать быстро и без воды
Чтобы создать вложенные группы — группы внутри групп, используйте Архитектуру teoz, путем ее подключения в коде: c помощью строки !pragma teoz true, добавляемой сразу после @startuml после чего box и end box можно вкладывать друг в друга генерируя несколько уровней вложенности:
Код диаграммы:
@startuml !pragma teoz true box "Группы" #LightBlue box "Первая подгруппа" participant Bob end box box "Вторая подгруппа" participant Alice participant John end box end box box "Внешняя группа" #lightgreen participant Lector box "Слушатели первой подгруппы" participant Marina end box end box Bob -> Alice : hello Alice -> John : hello John -> Marina: Hello Lector -> Marina: Hello @enduml
Если Вам было полезно и интересно, поддержите кармой или комментарием
----
Также я веду TG-канал: @sa_chulan
