序列图中的发生与执行规范,何时使用每个?

时间:2018-02-27 07:38:18

标签: uml sequence-diagram eclipse-sirius

在序列图中,消息何时应来自出现规范,何时应该来自执行规范

同样,消息的目标何时应该是两者中的每一个?

澄清条款

据我所知,大多数人都不熟悉术语出现规范执行规范,因此我将它们指向序列图。

在下面的描述中,有两条消息(标记为红色):

  • m12 来自和出现规范,
  • m2 从出现规格到执行规范(青色块)。

picture from eclipse.org (source)

大多数能够绘制UML序列图的工具默认情况下都会在两侧放置执行规范 - 为什么? - 与Visual Paradigm的情况一样 enter image description here

MagicDraw

enter image description here

2 个答案:

答案 0 :(得分:1)

消息开始/结束的位置始终出现。

执行规范显示了活动的实例。对于启动实例,如果应该执行发生,则不定义它。因此各种案例工具开发人员采用了各种方如果您可以决定,您可以描述实例是否仍处于活动状态(例如,等待答案),而不是该建模者的选择。

答案 1 :(得分:0)

您的问题是,为什么有些工具会显示双方的执行规范。原因很简单,他们对​​交互图的支持非常缺乏。消息的发送者和接收者都不需要执行任何操作,因此不需要执行规范。

虽然经常会出现这样的情况,即发送方执行某些行为,在此过程中会发送一些消息,并且消息的接收方执行响应接收消息的行为,但这并不总是案件。发送方可能会自发发送,接收方可能会忽略该消息。即使某些事情被执行,建模者也可能选择不提及它。交互图显示一些有趣的事件,但绝不需要显示所有可能出现的事件。

消息可能在ExecutionOccurrenceSpecification处开始或结束,但它也可能只是MessageOccurrenceSpecification。 ExecutionSpecification也可以独立于Message。也许建模者想要表达一个对象正在执行某些事情,而不受任何消息的干扰。甚至可以定义正在执行的行为。但是,我还没有找到支持UML的强制功能的工具。

所以答案是,这些工具应该允许消息和执行规范的任意组合,因为它完全取决于建模者,她希望显示出来的事件。