2008年11月17日月曜日

MDA Explained

渡米後、初の書籍レビューです。渡米前の書籍レビューについては私のはてな日記を参照してください。

MDA Explained: The Model Driven Architecture: Practice and Promise
この本は、GMUのFenwick Libraryで借りて読みました。技術書にしては珍しく192ページしかない薄い本です。しかし内容は非常に良くまとまっていて、MDAとは何か具体例を用いてわかりやすく説明されています。
この本の著者Anneke Kleppe氏は、この本のほかにもOCL(Object Constraint Language)の本「UML/MDAのためのオブジェクト制約言語OCL第2版」も共同執筆されています。

MDAとは
MDAにおけるソフトウェア開発では、Java等の言語やOS等のプラットフォームに依存しないモデルPIM(Platform Independent Model)とモデル変換が重要なポイントとなります。まずPIMを構築し、それをモデル変換して、上記プラットフォームに依存したモデルPSM(Platform Specific Model)を生成します。最後に、PSMをさらにモデル変換して実行可能なソースコードを生成します。

したがって、我々開発者はMDAを実現するためには、以下のコンポーネントを用意する必要があります。
  • PIM
  • PIMからPSMへ変換するモデル変換器
  • PSMからソースコードへ変換するモデル変換器
このような開発プロセス/フレームワークをOMGはMDAと定義しています。

この本は、具体例を用いて上記フレームワークを非常にわかりやすく説明しています。一種類のPIMから3種類のソースコードSQL、EJB、Javaコードを生成する例が示されています。言い換えると、一種類のPIM、3種類のPSM、6種類のモデル変換器の例が示されています。

Model Transform
現在、モデル変換器を定義するための言語としてQVTが標準化されていて、Eclipseプラグインも利用可能です。この本が出版されたときはそのような言語がなかったため、仮の言語を使ってモデル変換の例が示されています。その際、OCLが多く利用されています。実際、QVTにおいてもOCLを用いて変換ルールを定義します。

ソフトウェア開発の今後
最後には、ソフトウェア開発の展望が示されていて、アセンブラから高級言語に進化した歴史を例に挙げ、今後は高級汎用言語を用いた開発からMDAに移行するシナリオが示されています。
果たして、今後のソフトウェア開発はどう進化していくのでしょうか。実は私も上記展望に同感です。どんどん抽象レベルの高いプログラミングに進化するのではないかと思います。近年、DSL(Domain Specific Language)をドメイン毎に構築してソフトウェア開発を効率化する動きが盛んですが、これは抽象化の一例だと思います。

0 件のコメント: