【モデルくどうかいはつ】

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

💡 設計図を描けばコードが生まれる魔法の開発術
📌 このページのポイント
モデル駆動開発(MDD)の流れ PIM プラットフォーム 非依存モデル UMLクラス図 変換 PSM プラットフォーム 依存モデル Java/DB設計 生成 コード 自動生成された ソースコード .java .sql 従来の開発との比較 従来: 設計図 → 手書きコード 設計と実装のズレが起きやすい MDD: モデル → 自動生成コード モデルとコードが常に一致
モデル駆動開発の流れ(PIM → PSM → コード生成)
ひよこ ひよこ

モデル駆動開発って、モデルって何のこと?

ペンギン先生 ペンギン先生

ここでいうモデルは、UMLクラス図シーケンス図みたいな設計図のことだよ。普通はこれを見ながら人間がコードを書くけど、MDDではモデルからコードを自動生成するんだ

ひよこ ひよこ

設計図からコードが自動で出てくるの?すごい!

ペンギン先生 ペンギン先生

そうなんだ。たとえばクラス図を描けば、クラスの骨格コードが自動で出てくる。手で書く部分が減るから、タイプミスや実装漏れが減るんだよ

ひよこ ひよこ

でも全部自動生成できるわけじゃないよね?

ペンギン先生 ペンギン先生

いい質問だね。ビジネスロジックの細かい部分は人間が書く必要があるよ。だからMDDでは「生成されたコード」と「手書きコード」をうまく共存させる仕組みが大事なんだ

ひよこ ひよこ

どんな場面で使われてるの?

ペンギン先生 ペンギン先生

組み込みシステムや通信プロトコルの開発でよく使われているよ。仕様が厳密で、複数プラットフォーム向けにコードを出し分けたい場面にぴったりなんだ

ひよこ ひよこ

最近はAIでコード生成もできるけど、MDDとは違うの?

ペンギン先生 ペンギン先生

いいところに気づいたね。AIコード生成は自然言語から推測するけど、MDDは厳密なモデルから決定論的に生成する。再現性と追跡可能性が保証されるのがMDDの強みで、安全性が求められる分野では今でも現役なんだよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「モデル駆動開発」って出てきたら「設計図からコードを自動生成する開発手法」と思えればだいたいOK!
📖 おまけ:英語の意味
「Model-Driven Development」 = モデル駆動開発
💬 OMG(Object Management Group)がMDAとして2001年に標準化した考え方がベースだよ。「モデルこそが真の成果物」という哲学が根底にあるんだ
← 用語集にもどる