掲示板一覧   -   トピック一覧
   EA ソースコード生成・コード生成テンプレート
     テンプレートカスタマイズ時の「同じかどうか」の判断


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
tkouno
投稿日時: 2009-9-10 9:45
EA Administrator
投稿: 3939

テンプレートカスタマイズ時の「同じかどうか」の判断

○ご質問

コード生成テンプレートを編集し、クラスの操作について
引数を1つ増やして出力するように改造しました。

すると、同期生成の場合に、すでに操作(メソッド)が
ソースコード内にあるのに、さらに生成されてしまいました。
(同じ内容が重複して出力されました)

なぜでしょうか?

○回答

Enterprise Architectが行う操作が「同じかどうか」の判定については
UMLモデルのクラスの操作の定義と、実際のソースコードの中身を
比較してチェックしています。

例えば、クラスAが操作Xと操作Yを持っていて、コード生成テンプレートで
操作Zを追加するようにした場合、ソースには操作Zがありクラスには操作Zは
ないので、「異なる」と判定されます。

異なっているのでコード生成テンプレートの内容の処理が行われ、ここで
自動的に操作Zを追加するようになっているので、操作Zが重複します。

同様にして、引数の数や内容が異なる場合も「異なる」と判定されます。


上記のような理由ですので、ソースコード同期生成後、リバースして
クラス図のクラスの情報をソースと一致させることで、「同じ」状態に
することができます。
(ただし、ソースコード生成テンプレートの内容のカスタマイズの方法・内容に
よっては、この場合でも「同じ」と判定されない場合もあります。)


このあたりの背景は、メールで説明することは困難です。

下記の無料のセミナーでは、カスタマイズだけの話題の基礎だけで
4時間30分のボリュームがあります。
(上記の説明の内容や、より詳しい背景も説明しています)

https://www.sparxsystems.jp/seminar/EACodeGenerate.htm

次回は少し先になりますが
今後ご利用されることがあれば、ぜひ無料セミナーをご活用下さい。
(また、メディア送付サービスも利用できます)
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ