掲示板一覧   -   トピック一覧
   Enterprise Architect 全般
     シーケンス図のメッセージの表示が正しく表示されない


フラット表示 前のトピック | 次のトピック
投稿者 トピック
sugimoto
投稿日時: 2007-7-2 11:24
EA Administrator
投稿: 1895

シーケンス図のメッセージの表示が正しく表示されない

○ご指摘

シーケンス図を作成しており、メッセージが正しく表示されない現象がありました。


[作業手順]
・パッケージA
 パッケージAには、クラス図Aとそのクラス図に含まれるクラス要素Aを
 オブジェクトとして使用したシーケンス図Aが含まれています。
 シーケンス図Aでは、クラスAの操作OpeA()をメッセージに使用しています。
 パッケージAはバージョン管理しており、インポートした状態で、
 編集はできません。

・パッケージB
 この状態で、別のパッケージB内にクラス図Aをコピーし、”新規要素として貼り付け”
 としてクラス要素Aをコピーしました。この新しく作成されたクラスは
 クラスBとします。
 クラスBを使用して、パッケージB内にもシーケンス図を作成しました。
 シーケンス図では、クラスBの操作OpeB()をメッセージに使用しました。

[問題1]
 パッケージB内に、クラスB内の操作OpeB()を使用してシーケンス図を
 作成したにも関わらず、クラスA内の操作OpeA()がメッセージ名として
 表示されてしまいます。

[問題2]
 クラスB内の操作OpeB()に引数を追加したら、シーケンス図A内のメッセージ
 OpeA()にも引数が追加されてしまいました。


○回答

こちらは、EAのバグになりますので、開発元に連絡し修正いたします。

この問題の概要を説明いたします。

クラスの操作をシーケンス図のメッセージに使用した場合、操作には
タグ付き値が付加されます。EAはその値を元に、シーケンス図のメッ
セージとクラスの操作の情報をリンクします。

この状態で、そのクラスを含むダイアグラムをコピーし、要素を新規
作成すると、クラスは新規作成されますが、クラスの情報はコピーされ
ます。その際に、別のクラスになったので、操作のタグ付き値は削除
すべきですが、現在はコピー元のクラスの操作のタグ付き値をそのまま
コピーしてしまっていました。

そのため、シーケンス図でメッセージを作成した場合、そのメッセージに
該当する操作を間違って別のものを指してしまう場合があります。

今回は「パッケージA」のクラスの操作のタグ付き値と、「パッケージB」
のクラスの操作のタグ付き値が同じ値になってしまい、「パッケージB」
のシーケンス図のメッセージ名表示時に、間違って「パッケージA」内の
情報を参照しておりました。(問題1)
また、「パッケージA」のシーケンス図のメッセージの引数表示時に
「パッケージB」内の情報を参照しておりました。(問題2)



この問題は、以前から発生しておりましたが、問題を発生させるための
操作手順が明確になっておらず、弊社でも対応の手段がありませんでした。
以下の現象も、今回の問題と同じ原因です。
https://www.sparxsystems.jp/forum/modules/xhnewbb/viewtopic.php?topic_id=1509&post_id=3245

今回ご報告いただいたおかげで、問題を修正する目処が立ちました。

開発元に連絡し、クラス要素をコピーした際、タグ付き値は引き継がない
という修正を、できる限り早い段階で対応いたします。


また、現在作成されたモデルの修正方法としましては、モデルが大きい場合は
手間になってしまいますが、「パッケージB」内の操作のタグ付き値を、
タグ付き値サブウインドウで削除してただき、シーケンス図のメッセージに
改めて正しい操作を設定していただくことが必要になります。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » シーケンス図のメッセージの表示が正しく表示されない sugimoto 2007-7-2 11:24