フリーキーズ | 独学プログラミング

MDD(モデル駆動開発)とは

最終更新日

MDD(モデル駆動開発: Model Driven Development)とは、ソフトウェア開発手法の1つで、実際のコーディングが行われる前に、視覚的なモデルを使用してソフトウェアシステムの機能を記述・定義することを重視するものです。ソフトウェアシステムを効率的に設計・実装し、開発者、ユーザー、関係者間のコミュニケーションを向上させるための方法です。

MDDにおける「モデル」とは、通常、ソフトウェア・システムを図式化または図表化したものを指します。これらのモデルは、特定のモデリング言語、多くの場合、オブジェクト指向の設計手法を開発する最初のステップとして、現実世界のオブジェクトをモデリングするための標準表記法であるUML(Unified Modeling Language)の変種を使用して作成されます。

この考え方は、ソフトウェアが何をすべきかを詳細かつ正確にモデル化することで、開発者はコードのかなりの部分を自動生成できるようになるというものです。これにより、手作業によるコーディングの際に起こりうるヒューマンエラーや不整合の可能性を減らすことができます。

MDDの例

例えば、図書館を管理するためのソフトウェアシステムを考えてみましょう。MDDアプローチでは、まず、図書、借り手、ローンなど、システムのさまざまなコンポーネントと、それらの間の関係を表すモデルを作成できます。このモデルは、UMLのようなモデリング言語をサポートするモデリングツールを使って作成します。

そして、このモデルを使って、JavaやC#など特定のプログラミング言語でコードを自動生成します。生成されたコードは実際のソフトウェアシステムの基礎となりますが、モデルでカバーされていない特定の機能を実装するためには、開発者が手作業でコードを追加する必要があるでしょう。

まとめ

このように、MDDでは、開発者はコーディングの細部にとらわれることなく、ソフトウェアシステムのハイレベルな設計と機能に集中できます。また、非開発者にも理解しやすいソフトウェアシステムの視覚的な表現を提供することで、開発者と非開発者の間のコミュニケーションを改善できます。