【问题标题】:UML Sequence Diagram Message BranchingUML 序列图消息分支
【发布时间】:2016-03-17 21:54:28
【问题描述】:

有人在序列图中使用过消息分支吗?有谁知道这是专门用来做什么的吗?

据我所知,它用于显示多个收件人收到的单个消息

我刚刚看到它用于显示并发性,但我认为这是不正确的,应该用“par”片段或共同区域内来描述。

想法和意见?

【问题讨论】:

  • 从未见过。你的来源是什么?
  • 我们正在为一个项目创建序列图,我的一位同事创建了第二个图来显示一个动作产生多条消息。问题是我很难找到关于消息分支的好的文献。我看过几个来源,他们似乎都建议应该使用它来显示根据条件发送的不同消息,但他们没有任何示例并且不太清楚。

标签: uml sequence


【解决方案1】:

UML 2+

据我所知,在 UML 2+ 的序列图中没有消息分支之类的东西(但请看结尾)。

首先,Message 是一对sendEventreceiveEvent,其中sendEvent(用于foundMessage)和receiveEvent(用于lostMessage)都可以是可选的,但不能有多个发件人/收件人。

如果有的话,您的图表将是两个不同的消息发送,因为如果您有两个接收器,那么每个接收器都会呈现不同的receiveEvent(因此是唯一的Message)。

此外,您使用的符号很奇怪,因为[强调我的]

在交互图中,每条垂直线都描述了一个过程的时间线,时间在页面下方增加。 时间线上的两个事件之间的距离并不代表任何字面意义上的时间测量,只是表示非零时间已经过去。

所以非水平线表示非零时间间隔,规范没有提到这种弯曲线。

UML 1.3 (

我在 UML 1.3 (http://doc.omg.org/formal/2000-03-01.pdf) 中发现了消息分支

变体:分支

一个分支由多个箭头表示,离开一个点,每个箭头标有一个 守卫条件。取决于守卫条件是否相互 排他性的,该构造可以表示条件性或并发性。

但是UML 1.3 没有明确定义的元模型。

总结

据我所知,消息分支从 UML 2 开始的规范中被删除了。但是,它可以由两个具有明确定义的 Ordering 的单独消息表示,或者如果它是并行的,则使用 par 片段表示(这不是一回事)。

【讨论】:

  • 这非常有用。非常感谢您的帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-25
  • 2021-05-14
相关资源
最近更新 更多