【書評】UMLモデリングの本質
先日の記事でソフトウェア設計を学ぶために下記の書籍を紹介しました。
[amazon asin="4822284646" kw="UMLモデリングの本質 第2版"]
今回一応読み通したので、本を読んだ感想を書いてみたいと思います。
構成
本書の構成は以下のとおりです。
各章で更に細かく章分けされています。
感想
設計の仕方が分からないので、この本を読んで設計を学ぼうと思いましたが、結論から言うと予備知識を持っている人でないと理解は難しいなと感じました。
私は学生時代にソフトウェア工学やアルゴリズムを学んでおり、UMLの概要や記述方法などをある程度前提知識として持っていましたが、本書ではその知識を持っていることが当たり前のように書かれていました。 なので、UMLの各種図の書き方や読み方は細かく解説はしていません。 汎化や継承、制約、多重度などの言葉の意味を知っている方でしたら、ある程度理解が早いのかなと思います。
本書の前書きにも記されていますが、こちらのUMLモデリングの本質の他に、UMLモデリング入門という本が出ており「…入門」が初級編で、「…本質」が中級編となっているので、難しいと思われる方は「…入門」の方を読んでみるといいかもしれません。
[amazon asin="4822283585" kw="UMLモデリング入門"]
本を読み進めていくと、本書の題名「UMLモデリング本質」の名の通り、本質を中心とした話の展開で進めていっていると感じました。 図書館の貸出システムを例として上げているのですが、UMLモデリングの図を作成する際に「なぜこの図が必要なのか」や「なぜこういうふうに作ったのか」など作成の手順というよりは、その図の必要性や意義などを中心とした説明が多く、より実践に近い手法で説明されているというふうに感じました。 そのような説明の仕方から、同じ問題に対しての図が何度も登場し、登場する度に修正していて一発では正解が出ないような人間臭さや、ソフトウェアを最終的に使い人や目的に寄り添って親身に考えさせられると思います。
逆に言うと、細かい理屈抜きでさっさと正解を知りたいという方には向いていないと思います。UMLの作成方法の流れを一通り知りたいという方にはまどろっこしくて少しイライラしてしまうかもしれません。(実際私も少し思ってしまいました。)
さらに読み進めていくと、いわゆるデザインパターンやリファクタリング、さらにビジネスの仕組みを適用したモデリング手法など一歩進んだモデリング手法の説明がありました。 この辺まで読み進めると、初学者の私では理解が難しくて何度か読み返す必要がありそうです。何度かUMLモデリングを行ってソフトウェア設計をある程度わかってからの応用としてからもう一度読み返そうと思います。
最後に演習として例題を3つ上げており、具体的なソースコードなども登場して、より実践に近い内容となっています。 こちらも複雑な内容となっていて、UMLモデリングの本質を理解するためにはいい内容だと思いますが、まだ私には難しいので何度か読み直そうと思います。
ちなみに本書内でのソースコードはJavaが使われていて、Java使用者にはイメージが付きやすいかと思われます。
まとめ
本書の内容のレベルは高く、理解するのは難しいとは思いますが、理解できたときには大分知識がついたより上級のUMLモデラーとして自負できるのではないかと思いました。 私はまだ全然理解ができていませんので、少しでも理解できるように何度も読み直します。
実践
まだUMLモデリングを理解はできていませんが、実践としてBlackJackゲームの設計を行ってみたいと思います。 本書の作成方法や手順などを参考に形にしてみて、本ブログで紹介していくつもりですので、よければ見て下さると嬉しいです。