【モデルくどうかいはつ】
モデル駆動開発(MDD) とは?
最終更新:
💡 モデルを中心に、設計から実装へつなぐ
モデル駆動開発(MDD)は、構造や振る舞いを表すモデルを開発の中心に置く手法。モデルの変換やコード生成を利用し、OMGのMDAを例に自動化できる範囲と変更管理の注意点を解説します。
📌 このページのポイント
モデルって、AIのモデルのこと?
ここではシステムの構造や振る舞いを表すモデルだよ。UMLの図などが例だけど、見た目の図だけが大事なのではなく、要素や意味を定めたモデルを実装につなげることが大事なんだ。
モデルから全部のコードが出てくるの?
ツールとモデルが対応する範囲によるよ。クラスの骨格だけを生成する場合も、処理までモデル化して広く生成する場合もある。変換を手作業で補うこともあり、細かい処理は必ず手書きという決まりもないんだ。
PIM、PSMって出てきたけど何?
OMGのMDAで使う考え方だね。PIM(プラットフォーム非依存モデル)は特定の実行基盤に依存しないモデル、PSM(プラットフォーム依存モデル)は選んだ基盤の事情を反映したモデル。図はPIMからPSMへ変換し、コードを生成する一例で、すべてのMDDがこの順番や名前を使うわけではないよ。
モデルを直せば、実装も常に正しくなる?
自動では保証できないよ。変換規則の誤りや手書き部分との不整合もあり得る。再生成で手作業の変更が消えないように分け、モデル・生成規則・ツールの版を管理し、生成物もテストする必要があるんだ。
AIにコードを書いてもらうことと同じ?
もっと詳しく知りたい人へ
設計図を描くだけでもモデル駆動開発になる?
設計の説明に図を使うことと、モデルを開発の中心に置いて変換・実装・保守へ結びつけることは区別できます。どのモデルを正本にし、どの変更を生成物へ反映するかを決めると運用しやすくなります。自動生成は有力な手段ですが、自動化の範囲は採用する方式とツールによって違います。
まとめ:ざっくりこれだけ覚えればOK!
「モデル駆動開発」って出てきたら「モデルを中心に、変換や生成で設計と実装をつなぐ開発」と思えばだいたいOK!
📖 おまけ:英語の意味
「Model-Driven Development」 = モデル駆動開発
💬 Modelは構造や振る舞いを抽象化した表現、Drivenはそれを中心に進めるという意味。OMGのMDAは関連する代表的なアプローチで、MDD全体と同じ名前ではないよ。