私は現在、テスト駆動開発の支持者として、モデル駆動ソフトウェア開発 (MDSD) / モデル駆動アーキテクチャ (MDA) の支持者と競争しなければならない状況に直面しています。
私の意見では、コード生成はツールボックスの貴重なツールであり、必要に応じてテンプレートと自動化を多用しています。また、内部の仕組みを理解したり、ホワイト ボードでアーキテクチャについて話し合ったりするのに役立つと思われる場合は、UML で図を作成します。ただし、UML を使用してソフトウェアを作成すること (コードのスケルトンだけでなく、ステートチャートとシーケンス図を作成して作業コードを作成すること) が、多層アプリケーション (データベース層、ビジネス/ドメイン層、Gui、場合によっては分散型) にとってより効率的であるとは思えません。MDSD に関して言えば、CASE ツーリングはもはや単なるツールではなくなったように思えますが、それは満足すべきものです。
これらすべてのことから、実現した実世界のアプリケーションのサクセス ストーリーがあったかどうか疑問に思います (成功とは、予算内で製品が時間内に展開され、バグがほとんどなく、ソフトウェアの一部が後で再利用されたということです)。この基準は、厳格なモデル主導のアプローチを使用して開発されました。
- オブジェクト管理グループ (OMG) や MDSD/MDA/SOA/ に関連するコンサルタントとは何の関係もありません。
- アプリケーションはビジネス プロセス モデリングとは関係なく、CASE ツール自体ではありません。
- アプリケーションはエンドユーザーによって積極的に使用されています
- 生のテーブル値を表示するだけでなく、一般的な MDA/MDSD の例 (「コーヒー マシン、信号機、食器洗い機をモデル化する方法」) の 1 つではないユーザー インターフェイスを含む、少なくとも 3 つの層があります。