【发布时间】:2012-12-26 20:14:39
【问题描述】:
我在使用 Eclipse Papyrus 建模 SD 时遇到了一些问题,不是因为该工具(实际上制作得非常好),而是因为我对 OMG 规范的理解有误。
考虑这个简单的例子:
我有一个模型,其类 ClassA 包含两个不同类 (say bObj:ClassB and cObj:ClassC) 的两个实例。
ClassA 提供与通过 SequenceDiagram 指定的行为相关的操作(即 classAOperation(int param))。
现在的行为包括调用 bObj:ClassB 的操作 (ie.classBOOperation(int param)) 和 cObj:ClassC 的操作(即 classCOperation(int param))。
我想知道如何通过 SD 对这种非常简单的行为进行建模。 这个问题基本上和LifeLine有关。
根据 OMG 规范。生命线只能表示(表示属性)一个 ConnectableElement,在我的例子中是两个并且对应于实现ClassB 和ClassC 实例(bObj and cObj) 的组合的ClassA 属性。
问题是,我还需要引用这些可连接元素的容器,也就是说 ClassA 实例实际上正在执行这种紧急行为。正是该实例向bObj:ClassB 和cObj:ClassC 生命线发送消息(与操作调用相关)。
此外,由于此行为对应于 ClassA:classAOperation(int param) 调用,我还需要通过正式的门来表示 classAOperation(int param) 消息。但同样,由于我无法对容器生命线进行模式化,因此我看不到将 classAOperation(int param) 消息附加到哪个结尾。
【问题讨论】: