モデル駆動開発

モデル(設計・仕様)から自動的にコードを生成する開発手法。2000年代に注目されたが、広く普及することはなかった。

コンセプト

理想と現実

理想

現実

なぜ普及しなかったのか

抽象化のギャップ

モデルと実装の間には、埋めがたい抽象化のギャップがある。すべての実装の詳細をモデルで表現しようとすると、モデル自体が複雑になりすぎる。

フィードバックループの欠如

モデルを先にすべて書くアプローチは、ウォーターフォールと同じ問題を抱える。実装からのフィードバックがなければ、良いモデルは書けない。

ツールの限界

当時の自動生成ツールは、柔軟性と品質の両立が困難だった。

仕様駆動開発との類似性

仕様駆動開発は、MDDと構造的に類似している:

歴史的に失敗したアプローチが、AI時代に再び現れている。

違い:LLMの柔軟性

LLMは、従来のコード生成ツールよりも柔軟で自然なコードを生成できる。この点でMDDとは異なる。

しかし、以下の問題は依然として残る:

教訓

モデル/仕様駆動のアプローチは、適用範囲が限定的。むしろ、仕様・実装共進化のように、モデルと実装を高速に往復させるアプローチが有効。

成功例:限定的な適用

完全に失敗したわけではなく、特定のドメインでは成功:

これらは限定的で明確な境界を持つため、自動生成が有効。

関連

参照