序列图中执行发生的语义

时间:2011-11-27 12:48:34

标签: semantics modeling uml sequence-diagram

我正在教授一门使用UML作为模型系统工具的课程。在课程中我们教授序列图,在准备课程时,我发现没有明确定义“执行事件”的语义。 例如。如果一个对象进行自我调用“等待输入”并且此调用在执行发生内,那么该对象是否可以接收消息?显然我认为是的,因为它正在等待消息。

但是这反驳了执行事件意味着对象当前“忙”或“活跃”的想法。

任何帮助/想法?我的结论是离开主题并告诉学生忽视执行事件。有更好的想法吗?

1 个答案:

答案 0 :(得分:2)

总的来说,注意序列图没有精确的语义(和AFAIK,它们不包含在新的base UML semantics中)因此它们或多或少是“开放的”解释“,以满足您特定的素描需求。

一般来说,序列图是什么意思?它是一个通用规范(“这是系统将始终如何表现”,因此没有其他允许的行为)?或者它是一个存在规范(“这是一个系统应该支持的场景”,因此一个不是不正确的系统)?或者它只是一个描述(“这可能会发生”)。没有答案,因为SD没有像这样的精确语义。

(当然,some formalizations do exist,但这取决于你想教的内容。)

因此,我不认为这个问题有一个独特的答案:

  

“如果某个对象进行自我调用”等待输入“并且此调用在执行事件中,那么该对象是否可以接收消息?”

那说:

根据this tutorial,执行发生(EO)表示:

  

执行发生或激活控制焦点

另请参阅下一个diargam,关于自我消息传递,你已经嵌套了执行事件。

此外,here简单地说EO是:

  

行动或行为开始或结束的时刻

最后,EOs引用execution specifications代表:

  

参与者一生中的一段时间,它是(a)在生命线内执行一个行为或行动单位,(b)向另一参与者发送信号或(c)等待另一参与者的回复消息。

我希望它有所帮助:)