Executable UML

Executable UML MDAモデル駆動型アーキテクチャの基礎 (Object Oriented SELECTION)

Executable UML MDAモデル駆動型アーキテクチャの基礎 (Object Oriented SELECTION)

この本は、、、実は私も未だにほとんど理解できていません。
私が理解した範囲でまとめると、プラットフォームや開発言語に依存しない、実行可能なUMLモデルを書くためのルールブックのようです。
実行可能な図を描くためにクラス定義・属性・関連・ロールなどの細かい説明が書かれています。

どのような人にオススメか?

本書の裏表紙には中級車〜上級者と書かれています。
まさにそのとおりだと思います。入門者クラスの方が読んでもほとんど理解できないかもしれません。
ですが、あえて、入門者や初心者でも読んで見ても良いと思います。
私は入門者時代に読みました。しかし、それでも、参考になる部分はいくつかありました。
それに、初心者から中級者・上級者にレベルアップしたあとにもう一度読むことで新たな発見があるのだと思います。
ですので、オブジェクト指向開発に携わる人であれば、だれでも読んでみて損は無いと思います。

私がこの本から学んだこと

分析モデルと設計モデルの違い

この本では、MDAについても解説されています。
MDAは、モデルを作るだけでソフトウェアを作るというモノです。
ですので、MDAはPIM(Platform-Independent Model:プラットフォーム独立型モデル)、要するに機能を実現するためのモデルで実装に影響されないモデル を作ればソフトウェアが出来てしまいます。
また、MDAはPIMと実装の間にできる中間モデルであるPSM(Platform-Specific Model)
も定義しているようです。PSMとはつまり、実装に依存したモデルのことです。

このMDAの考え方をオブジェクト指向開発に当てはめると、ちょうど分析モデルがPIMで設計モデルがPSMとなるのだと思います。


ですので、この本を読むことによって、分析モデルでは機能をモデリングし、設計モデルでは分析モデル+非機能をモデリングすればよい。のではないかという考えに達しました。

「分析モデルは静的なモデル」という言葉に惑わされてはいけない

私は、先輩や講師の方に「分析モデルは静的で動きを意識してはいけない」と散々言われてきました。
しかし、Executabl UMLを読み、MDAの考え方を知ったとき、「分析モデルは静的で動きを意識してはいけない」ではなく「分析クラス図は静的で動きを意識してはいけない」ということに気がつきました。
分析フェーズでも、コラボレーション図を描いて動作を検証しています。
つまり、分析モデルもやっぱり動かなければ意味がないのです。
静的に描くのはクラス図のことだったのです。


これに気がつくまでは、「なんで、静的モデルなのにコラボレーション図を描いて動作検証しているんだ! 動的じゃないか!」と思ってました。が、講師や先輩が言っていた分析モデルとは分析クラス図だけを対象にしていたのだと思いました。