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