在 PlantUML 序列图中将消息文本放在参与者的右侧

place message text right of actor in PlantUML sequence diagram

背景

UML 序列图通常用于创建系统参与者之间发送的消息的表示,从而阐明信息流。一般来说,消息显示 between 通信参与者,这是一个很好的做法,显然适合处理 "messages".

我的申请

现在,我想(错误地)使用序列图来阐明哪个 activity 在哪个 actor 上执行,而不是在 actor 之间发送哪个 messages。因此,我可以例如描述我系统中的 activity 分布。我想放置描述演员活动 on the right 的文字。

我的问题

在 activity 图中处理 "Notes" 时,PlantUML 提供了将它们自由放置在角色周围(左、右或中心)的可能性,但我还没有弄清楚是否这种自由也被授予消息。

这是一个 PlantUML 序列示例:

@startuml

' two activities executed on actor1

activate "actor1" #Olive
"actor1" -> "actor1": actor1 activity1\nactor1 summary1

' two sub-activities  executed on actor1

activate "actor1" #OliveDrab
"actor1" -> "actor2": actor1 sub-activity1\nactor1 sub-activity2

' then comes a transition from actor1 to actor2
' and two activities executed on actor2

activate "actor2" #Olive
"actor2" -> "actor1": actor2 func activity1\nactor2 func activity2

' two sub-activities executed on actor2

activate "actor2" #OliveDrab
"actor2" -> "actor2": actor2 func sub-activity1

@enduml

创建此结果的原因:

目前,图表还有一些其他问题,但在此处应该不是问题。我只是希望能够将 "messages",在我的例子中应该被认为是 "activities",放在创建/启动它们的每个参与者的右侧。

这是一张原理图,我如何想象输出:

我可以尝试使用来自例如"actor2" 到 "actor2",但这总是会产生这些反身箭头,我真的不想在图中看到这些箭头。而且,对于这类图表,我想坚持使用 PlantUML。不知道是否有另一种图表可以显示 "actors" 和它们的 "activities" 之间的关系。

这可能吗?

您始终可以使用白色透明颜色隐藏箭头并创建一些“假激活”这有点 hack,但我想这会满足您的要求:

@startuml
A1 -[#ffffff00]> A1: 
activate A1
A1 -[#ffffff00]> A1: first activity of A1
A2 -[#ffffff00]> A2: 
activate A2
A2 -[#ffffff00]> A2: first activity of A2
A1 -[#ffffff00]> A1: 
activate A1 #blue
A1 -[#ffffff00]> A1: 2nd activity of A1
@enduml