0. モデル駆動開発以前 モデル駆動開発 (Model-Driven Development, MDD) とは対象に関する知識を「モデル」に変換することによって行われるソフトウェア開発手法の総称である. 「モデル」とは「対象のある側面を抽象化して表現したもの」である. 従ってモデルは対象のすべての側面を忠実に表現しているわけではない(もしそうだとしたらそれはすでにモデルではなく対象そのものである). また同じ対象に対してどの側面を取り上げるか, どのように表現するかによって複数の種類のモデルが存在し得る. 例えば地図は地形を対象としたモデルであるが, 地形そのものではない. また測量のための地図か, ドライブのための地図か, 人口分布を表すための地図かなどによって, 同じ場所を表す多くの種類の地図が存在する. 従来のソフトウェア開発も問題領域の現実や欲求に関する知識を CPU の上で動作す