MDA(モデル駆動型アーキテクチャ)とは、UMLなどの標準モデリング技術を使ってモデルを作り、モデルをベースにソフトウェア開発を行っていくというものです。プラットフォームに依存しないモデル(PIM)からプラットフォームに依存するモデル(PSM)へ自動的に変換してくれるツールを用いて開発を行います。
本書は、MDA開発のプロセスと、モデルの変換について、現時点で使えるツールについて書かれています。MDAという考え方は、比較的あたらしく、ツールのサポートが不十分です。今の段階でMDAをプロジェクトで活用することはまだ不安があります。
対象読者は、プロジェクトマネージャ、開発者です。現時点で実務に使うのに不安があるMDAですが、そのメリットと仕組みを知っておくと今後のパラダイムシフトにすばやく対応できるでしょう。
本書にはプログラムコードはほとんど出てきません。擬似コードかモデルが出てくるだけです。つまり、本書で解説していることがMDAの概念や仕組みに特化していると言うことです。
特長
Platform Independent Model(PIM)とPlatform Specific Model(PSM)
MDAでは2つのモデルを定義しています。一つは、プラットフォーム独立モデル(PIM)です。もう一つはプラットフォーム特化モデル(PSM)です。PIMからPSMの変換を行うツールを用いて、MDAはソフトウェア開発を行っていきます。
PIMは、モデルが実行される環境に依存していないモデルです。つまり、WindowsでもLinuxでも、TomcatでもJBossでも、どんな環境でも動くことを保証しているモデルです。
PSMは、モデルが実行される環境に依存するモデルです。つまり、WindowsのTomcatで動くモデルと言うように、環境に特化しています。
PIMからPSMへ、PSMからプログラムコードへとモデルが変換されていくプロセスが、モデル駆動型開発と呼ばれるゆえんです。確かにモデルからプログラムコードへと自動で変換されるのはメリットが大きいと思います。しかし、現実的には現段階では、モデルを非常に厳密に書かなければならないし、制約を厳しくしておく必要があると思います。
今後、MDAがどのような発展を遂げていくのか非常に楽しみです。本書では、MDAの基本概念について主に解説しています。今後もっと実践的な書籍が増えてくると思いますが、概念を押さえるには本書のような導入ガイドを読むのがいいと思います。
参考
- MDAの基礎知識を詳しく吸収できます。
- MDA開発のエッセンスを解説した本です。入門書的な扱いです。
- かなり厳密にMDAを学びたい人向けです。
- きっちりしたモデルを書くためにOCL(オブジェクト制約言語)