「MDA導入ガイド」4-7章

4. RosaのMDAアプリケーション
ここからは,「Rosa*1の朝食サービス」を題材として,MDAによる開発プロセスが解説されています.まず4章ではPIMを作成しています.
「Rosaの朝食サービス」は,WEBで注文された朝食を届けるというもので,クレジットカードで決済されます.しかし,そこはさすがに例題,決済の部分はPIMから完全に消え失せています.
結果,PIMはきわめてシンプルなものであるため,これなら分析モデルの成果物であっても無理はないと思います.でも現実的かはちょっと...
本章の「まとめ」には,「MDAの手法の威力を示すために,大規模なシステムを例に挙げました.」と書かれています.揚げ足を取りたいわけではありませんが,威力を示せる例題とは言い難いと感じました.
5. RosaのPIMからPSMへの3つの変換
本章では,4章で作成したPIMからPSMへの変換について説明しています.
「3つの変換」というのは,一つのPIMからリソース層(RDBMS),エンタープライズ層(EJB),プレゼンテーション層(JSP)に対応した3つのPSMへの変換です.元になるPIMは一つですから,それぞれのレイヤ間で矛盾が起こるはずはないというのが魅力的です.
とはいえ,例で示されているPSMはあまりにも単純かと思いました.
例えばリソース層(RDBMS)のPSMでは,全てのテーブルに○○Idという主キーが付け加えられています(元のPIMにはありません).PIMに主キーとしてふさわしいと思われそうな項目があっても,無条件に○○Idです.それでいいの? 文字列の長さは全て最大40文字にされています.それでいいの?
また,今回のPIM中のクラスは,全てのレイヤのPSMにクラスとして出現していますが,それが現実的とは考えにくいです.ドメインモデルのクラスの多くは,プレゼンテーション層では不要ではないかと思います.逆に,プレゼンテーション層にはドメインモデルにきわめて近いPIMには欠けている情報を相当補わなくてはならないと思うのですが,そのあたりの説明はほとんどありません.
ページ数からいっても,本書にそこまで詳細な解説を望んではいけないと思いますが,あまりにも単純な例だと疑念が強くなるだけではないか,という印象を持ってしまいました.
「6. RosaのPSMからコードへの変換」
前章で作成されたPSMからコードへの変換が解説されています.リソース層の例では,なんと文字列でCREATE TABLE文を組み立てるという,あまりに具体的な解説が出てきてちょっと笑ってしまいました.EJBへの変換ではそこまで低水準の解説ではなく,変換のためのいくつかのルールが紹介されています.
そういえばこの例題のモデル,操作は属性にアクセスしたり,関連をたどったりすることしかないのですね.動的な側面は省略されています.しょうがないですかね.
「7. 変換の詳細」
ここでは,PIM->PSM->コードという変換の際に考慮しなければならない事項を解説しています.
4ー6章を読んでいて感じる疑問のいくつかも取り上げられています.それは,PIMだけでは不足する情報をどのように補うか,ということです.「MDA モデル駆動アーキテクチャ(ISBN:4434038133)」でも取り上げられていたテーマですね(2004/03/17の日記を参照).


入門書としての分かりやすさと,具体性・詳細さをどう両立するか,とても難しい問題ですね.本書は,かなり分かりやすさを優先しているようです.そのため,実際の開発をイメージしながら読もうとすると,疑問が残ることになりやすいように思いました.

*1:雑誌モデル界隈で話題の加藤ローサちゃんとは関係ありません,たぶん