PlantUML создает в другом направлении

Есть ли способ контролировать, где на диаграмме последовательности plantUML создается объект? Взгляните на этот простой пример. Здесь я хотел бы иметь графический интерфейс между консолью и пользователем.

введите здесь описание изображения

Код для этой диаграммы выглядит так:

 /*
 * 
 * @startuml
 * skinparam sequenceParticipant underline
 * 
 * actor User
 * participant "Console" 
 * database "DB"
 * activate User
 * 
 * User -> Console : giveMeGUI()
 * activate Console
 * create GUI
 * Console -> GUI
 * GUI -> User : Hi there 
 * @enduml
 */

спасибо за помощь


person User12547645    schedule 19.04.2017    source источник


Ответы (1)


Хотя этого нет в спецификациях UML, соглашение об упорядочении жизненных циклов обычно изображается в том порядке, в котором они впервые используются и/или создаются. Наличие GUI перед Console сразу указывает на то, что он создан/используется до Console, хотя при ближайшем рассмотрении видно, что он создан через Консоль.

Возможно, вам не нравится ответ GUI, пересекающий спецификацию выполнения Console. Если это так, если выполнение giveMeGUI() не продолжается после создания графического интерфейса, его в любом случае следует деактивировать.

Например

@startuml
skinparam sequenceParticipant underline

actor User
participant "Console" 
activate User

User -> Console : giveMeGUI()
activate Console
create GUI
Console -> GUI : <<create>>
deactivate Console
activate GUI
GUI -> User : Hi there 
deactivate GUI
database "DB"
@enduml

приведет к следующему

введите здесь описание изображения

person Frelling    schedule 19.04.2017
comment
Большое спасибо. Я не знал, что последовательность элементов указывает на что-либо. Это было полезно. - person User12547645; 21.04.2017