2012-08-02 3 views
10

私はDiaを使い始めました。私はシーケンス図を作成しようとしています。私はセルフコールを代表したいと思います。ディアではどうしたの?私はそれを理解することはできません。Diaで自己通話を引き出す方法は?

ありがとうございました。

答えて

13

最初に、ライフラインにベースが付けられたUML Messageオブジェクトを配置します。

次に、矢印(または右クリックし、プロパティ)をダブルクリックし、再帰的にメッセージの種類]ドロップダウンフィールドを変更し、あなたはこのような何か買ってあげる:

enter image description here

を緑のアンカーポイントをドラッグして、メッセージの矢印を見たいようにすることができます。 (注記:注意してください:Recursive Messageオブジェクトでは、緑色のアンカーポイントが正しい場所をクリックするだけでオブジェクトを選択することができます。オブジェクトが選択されていない緑色のアンカーポイント)

あなたが好きなら、あなたは別のUMLライフラインオブジェクトを作成し、それはこのように、既存のライフラインを重ね置きすることができます。

extra lifeline example

このISNしかし、この第二のライフラインには何も付いていないので理想的です。 Recursive Messageオブジェクトは、元のライフラインに自動的に付加されているため、矢印の付いた部分をどこに添付するかを選択することはできません。そして2番目のライフラインは何にも付いていないので、動かすとオブジェクトが周囲に残ることになります。しかし、それはあなたが後になっている場合、それはかなり見えます。 :)

+0

大感謝:

あなたは(この例では、リンクされたリスト内のノードのその表現)このようなものに終わるだろう。興味深いことに、非再帰的な自己呼び出しが欠落しているように見えます。 – JDelage

+0

私は、ここでは "再帰的"という考え方が間違っていると思います。通常、再帰について考えてみると、「再帰関数」と考えられますが、ここでは「関数を呼び出す」のではなく、「オブジェクト自身を呼び出すオブジェクト」があります。この意味で、自己呼び出しは定義上再帰的です。 – feuGene

0

UMLの自己呼び出し(または他の関連付け)は、メッセージ1ではなく標準の関連付け表記を使用して表現する方が適切です。 DIAでは、左のツールボックスからアソシエーション記法を挿入してキャンバスに追加します。次に、クラスを再帰的に(自分自身に)接続させるには、そのクラスをダブルクリックし、「オートルート」を選択します。これにより、ルートを自分で形作ることができ、クラスを自分自身にリンクするときに描画される自動直線に制約されることはありません。 enter image description here

+0

質問は、クラス図ではなく、シーケンス図での自己呼び出しに関するものでした。 –

関連する問題