3

長年にわたり、私はコード ジェネレーターと MDD を使用する多くの方法を調査してきました。私は常に何かが欠けていると感じていました: 実行時のモデルへのパッチ適用と変更です。

パッチ適用: コード ジェネレーターがある場合は、すべてのクラスが同じに見えるはずです。ここで、1 つの例外があります。これまでのすべてのコード ジェネレーターでは、これを機能させるためにテンプレートまたはテンプレート エンジンを変更する必要がありました。

コード生成ステップの結果にパッチを適用して例外を修正できればよいのではないでしょうか?

4

2 に答える 2

1

まあ、それはモデルをどのように構築するかによって異なります。実際には、使用しているコード ジェネレーター、そのアプローチ、および何ができるかによって異なります。

ルール (モデル) に例外を作成することは、多かれ少なかれ MDD の性質に反します。ただし、適用されたモデリング アプローチでモデリング エンティティとして例外を追加できる場合を除きます。

ABSE は、テキストや整数のように、「カスタム コード」を第一級のエンティティとして受け入れる唯一のモデリング アプローチだと思います。「CustomCode」パラメータを含むテンプレートを作成すると、後で必要な場合にのみ例外コードを追加でき、モデル ルールに違反することはありません。これは、コードの追加または置換に使用できます。テンプレートで指定するだけです。

AtomWeaverは、ABSE モデリング手法を無料で実装したものです。

于 2010-12-28T18:23:19.470 に答える
0

MDD は、ドメイン全体ではなくドメインのビューに基づいているため、機能しません。つまり、通常、MDD は UML ダイアグラムからのエントリで XMI を取得します。問題は、この図はドメインのビューにすぎないため、多くの選択肢があり、実際の世界は展開段階では特に複雑になることです。

私のプロジェクトで真の価値を提供してくれた唯一の会社は、EclipseUML を備えた Omondo でした。EclipseUML は MDD を実行しようとはしませんが、コードとライブ同期してダイアグラム レベルで UML を作成します。配置は、コード内の Java アノテーションに追加されたステレオタイプを使用して行われます。したがって、モデル化することができ、デプロイ ステレオタイプを追加すると、アプリケーションをすぐにデプロイできます。コードを手動で変更すると、モデルがリファクタリングされ、すべてのビューが更新されます。ドキュメントを追加したい場合は、メタモデルにメモを追加するだけです。これらのメモは、各要素をクリックするとライブで利用できます。ライブナビゲーション、動的ビューの作成などにより、印刷されたドキュメントはもう必要ありません...

私の EclipseUML モデルは常に最新であり、モデル、メタモデル、ダイアグラム、およびコードの間で Java アノテーションが同期されているため、すぐにデプロイできます。すごくかっこいい :-) :-)

于 2010-12-28T11:17:24.950 に答える