3

Eclipse Papyrus を使用して SD をモデル化する際に問題が発生しています。これは、ツール (実際には非常によくできている) が原因ではなく、OMG 仕様に対する理解が間違っているためだと思います。

次の簡単な例を考えてみましょう。

ClassA2 つの異なるクラスの 2 つのインスタンスを含むクラスを持つモデルがあります(say bObj:ClassB and cObj:ClassC)ClassASequenceDiagram によって指定された Behavior に関連する Operation (つまり、classAOperation(int param)) を提供します。

ここで、動作は、bObj:ClassB の操作 (つまり、classBOperation(int param)) と操作cObj:ClassC(つまり、classCOperation(int param)) の呼び出しで構成されます。

SDを介して、この非常に単純な動作をモデル化する方法を考えています。質問は基本的にライフラインに関するものです。

OMG仕様によると。ライフラインは (Represents 属性) ConnectableElement のみを表すことができます。私の場合、これは 2 つであり、 aおよびinstanceClassAへの構成を実現するプロパティに対応します。ClassBClassC(bObj and cObj)

ClassA問題は、これらの接続可能な要素のコンテナ、つまり実際にそのような緊急の動作を実行しているインスタンスへの参照も必要であることです。メッセージ (操作呼び出しに関連する) をbObj:ClassBおよびcObj:ClassCライフラインに送信するのはそのインスタンスです。また、この動作はClassA:classAOperation(int param)呼び出しに対応するため、正式なゲートを使用して classAOperation(int param) メッセージを表す必要もあります。しかし、繰り返しになりますが、コンテナのライフラインをモードにできないため、classAOperation(int param) メッセージの終わりがどのアタッチされているかわかりません。

4

2 に答える 2

2

自己インスタンスを参照することは確かに可能です

実際、UML spec 2.5b1 page 607 には、Lifeline について書かれています。名前がキーワード self の場合、Lifeline は、Lifeline を所有する Interaction を囲む分類子のオブジェクトを表します。self が含まれている場合でも、encloser のポートが個別に表示される場合があります。

ここに画像の説明を入力

http://lowcoupling.com/post/47844944042/uml-sequence-diagramsを参照して ください。

完全な例について

于 2013-02-11T20:40:31.137 に答える
-1

シーケンス図では、呼び出しのシーケンスを表示するだけで十分だと思います。接続可能な要素、コンテナへの参照などについては重要ではないと思います。オブジェクト間の呼び出しのチェーンを示しているだけです。シーケンス図: メッセージング図と呼ぶことができます。

シーケンス図

于 2013-01-13T07:13:38.257 に答える