UML 序列图 "Message Duration"

UML Sequence diagram "Message Duration"

我正在绘制 Public Phone (PP) 系统的序列图。我想做的是: - 一条消息:来电者输入金钱并发送呼叫请求与被叫者 phone 号码 - 消息:PP 计算呼叫的持续时间 - 消息:PP 打印通话时长限制给 CALLER - 一条消息:呼叫者和被呼叫者在计算的呼叫时间内通信 --> 这条消息是一种持续时间消息 - 消息:PP 检测通话时间结束 - 一条消息:用于结束通信

下面是我正在尝试做的事情的图片:

我应该如何正确地表示消息(尤其是 消息 4 和它后面的其他消息)这里没有循环片段?所以斜线的持续时间仍然很明显......并且消息 10 是结束消息 4

的持续时间

已编辑图表

最后修改的图表 <--- 好的 !!!

我认为这总结了你们所说的

消息 4 不得倾斜绘制,因为这表示消息本身的持续时间。

同样,您可以使用片段:

alt 有默认和超时。您可以使用具有关键区域的 activity 图表来增强它,该图表允许以更好的方式显示此类时序约束。

您无法显示参与者在没有循环的情况下讲话。发送消息 4 不需要持续时间 XX:XX。这似乎滥用了 UML。

您最好使用异步消息(带有空心箭头的消息)。一种是开始通话,通过 phone 在呼叫者和被呼叫者之间来回发送许多消息,另一种是结束通话。通过 phone 的来回消息可以显示为可选、并行和循环。

看来您真正应该使用的是状态机图。这将允许您表达该协议的所有允许的痕迹,包括达到时间限制时会发生什么。序列图通常说明所有允许的跟踪的子集。如果您尝试将它们全部显示出来,图表可能会变得难以阅读并且几乎无法维护。