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

モデル駆動開発(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年に標準化した考え方がベースだよ。「モデルこそが真の成果物」という哲学が根底にあるんだ
← 用語集にもどる