モデル駆動型アーキテクチャとは、解決する必要がある問題を表現するモデルを作成し、実装テクノロジをまったく (または少なくともほとんど) 使用しない方法で作成し、1 つまたは複数の特定のプラットフォーム用の実装を生成するという考え方です。主張は、より高いレベルの抽象化で作業することは、はるかに強力で生産的であるということです. さらに、モデルはテクノロジーよりも長生きします (そのため、最初の言語/プラットフォームが時代遅れになっても、次世代のソリューションに使用できるものがあります)。主張されているもう 1 つの重要な利点は、ボイラープレートと「単調な作業」の多くを生成できることです。コンピューターが状況のセマンティクスを理解すると、さらに役立つ可能性があります。
このアプローチは生産性が 10 倍高く、10 年後にはこの方法でソフトウェアを構築していると主張する人もいます。
ただし、これはあくまで理論上の話です。ゴムが路面に出くわしたときの結果はどうなるのだろうか。また、MDA の「公式」バージョンはOMGのもので、非常に重いようです。これはUMLに大きく基づいており、誰に尋ねるかによって良いか悪いかを判断できます(私は「悪い」方に傾いています)。
しかし、これらの懸念にもかかわらず、より高いレベルの抽象化で作業し、問題と解決策のセマンティクスを理解するようにコンピューターに「教える」という考えに異議を唱えることは困難です。単純に真実を表現する一連の ER モデルを想像してください。次に、それらを使用してソリューションの重要な部分を生成することを想像してください。最初は 1 つのテクノロジ セットで、次に別のテクノロジ セットで再び生成されます。
ですから、現在 MDA を実際に行っている (「公式」であろうとなかろうと) 人々の意見を聞きたいと思います。どのようなツールを使用していますか? それはどのように機能していますか?理論上の約束をどの程度達成できましたか? 真の 10 倍の有効性の向上が見られますか?