掲示板一覧   -   トピック一覧
   Enterprise Architect 全般
     シーケンス図とクラス図の同期


フラット表示 前のトピック | 次のトピック
投稿者 トピック
sugimoto
投稿日時: 2006-12-11 14:02
EA Administrator
投稿: 1895

シーケンス図とクラス図の同期

○ご質問

1) シーケンス図のインスタンスをクラス図で定義したものを利用することで,
論理情報の引継ぎができますが,

シーケンス図の要素の生成方法として,「要素のインスタンスとして」
実施した場合,シーケンス図を作成した後,クラス図の情報要素を変更
した場合,論理情報の同期が取れなくなってしまうように見えます.

上記の問題を解決する機能はないでしょうか?
以下の機能があると助かります.

a. クラス図とシーケンス図を比較し,同期されていないインスタンスの
 検出機能あるいはクラス変更契機でのインスタンス修復機能
b. シーケンス図上のインスタンスをクラスに変換する機能
c. どの図からも参照されていないクラス,インスタンス一覧の検出機能
 (自動削除機能あるいは,削除支援機能)

人間の目によるチェックには限界がありますので,クラス図の変更が
複数個所のシーケンス図に影響が出た場合のうまい修正方法を教えてください。


2) 補足の追加質問です。

「要素のインスタンスとして」にて生成したオブジェクトは
「要素の分類子」によって関連されています.

但し,クラス図から削除を実施して場合,オブジェクトは存在したままとなり,
分類子との関係も途切れてしまう動きに見えますがあっているでしょうか?

⇒ クラスが削除された時点でオブジェクトも削除する動きを想定していました。

そこで再度質問になりますが,以下のような機能は存在しないので
しょうか?

a. 分類子が設定されていないオブジェクトの検出機能
 このようなオブジェクトが多数存在すると,人間の手で一つ一つ
 分類子を設定するのは難しいかと思いますが,なにか機能として
 用意されていないのでしょうか?

b. シーケンス図上のインスタンスをクラスに変換する機能
 分類子が消えているインスタンスを作らないようにするため,
 シーケンス図上もすでに「要素のインスタンスとして」生成した
 オブジェクトではなく「リンクとして」(おそらく直接クラスに関連する
 のでしょうか?)の形に修正したいと考えておりますが,うまい修正方法
 はないでしょうか?

c.上記は具体例ですが,クラスとオブジェクトの関係が途切れた場合の
 発見契機及び対処方法をご教示頂けますでしょうか?

d. また,少し別件にはなるかと思いますが,
 クラスで定義されていないメソッドをシーケンス上には定義ができると
 思いますが,このようなオブジェクト(同期が取れていないオブジェクト)を
 検出する機能はないのでしょうか?


○回答

1)
クラスを一度インスタンス化しますと、クラスとインスタンスは
別物になり、分類子で関連付けされた状態になります。

そのため、シーケンス図のインスタンスのプロパティ情報と
クラスのプロパティ情報もイコールではなくなりますが、
インスタンスのコンテキストメニューから「追加」→「分類子のプロパティ」
を参照することで、クラスの情報を参照することが可能です。

このことに関する情報はヘルプの「要素の分類子」に記述があります
ので、ご参考にしてください。

c. につきましては、メインメニュー→「編集」→「検索」にて、
 ルールに”独立要素の検索”を設定し、検索実行することで、
 どこにも使用されていない要素を検索することが可能です。


2)
オブジェクトは分類子がなくても存在しうる要素ですので、
分類子の元となるクラスが削除されても、オブジェクトは
削除されないという動作になります。
また、オブジェクトに別の分類子を付け替えたいという場合も
ありますので、分類子がなくなったタイミングでオブジェクト
を削除するということは行っておりません。

なお、オブジェクトへの分類子設定は、オブジェクトのコンテキスト
メニューから「追加」→「インスタンスの分類子を設定」で行うことができます。

a. 現在、Enterprise Architectの機能としては用意されておりませんが、
 アドインを作成することで実現できます。
 アドインについては、以下のページに概要がありますので、
 ご参考にしてください。
 https://www.sparxsystems.jp/addin_using.htm

b. こちらもEnterprise Architectの機能としてはありません。
 アドインで作成することもできますが、処理は少し複雑になることが想定されます。

c. こちらもアドインを作成することで、編集タイミングに警告を
 表示するといったことが可能になります。
 Enterprise Architectの機能としてはご用意がありません。

d. こちらも、同様にアドインであれば実現可能です。

Enterprise Architectでは、さまざまな開発現場での使用方法に
対応できるように、アドインにて機能を追加できる仕組みを設けて
おります。アドインでのご対応をご検討ください。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » シーケンス図とクラス図の同期 sugimoto 2006-12-11 14:02