はじめに
Clean Architecture 達人に学ぶソフトウェアの構造と設計 (アスキードワンゴ)やエリック・エヴァンスのドメイン駆動設計を読んでいて、UMLが当たり前のように出てくるので、この機会にちゃんと学んでおこうと思い、下の本を読んでみました。
自分は最初の全体の話とクラス図、シーケンス図の章を読みました。
クラス図とシーケンス図を読んだのは他の書籍でもよく出てくるからです。
簡単に感想を書いておこうと思います。
感想
本書を読んで、正確性、網羅性よりも手早く、(UMLの規約的に正しくなくてもいいので)意図が伝わり、UMLを通じてドメインのコミュニケーションをすることが重要だと理解しました。
この点について、DDD本と似たことが書かれていることから、昔から思想はあまり変わっていない(もしくはUMLが自分が思った以上に最近のツールである)と感じ、驚きました。
また、以下のような詳細な気づきも得ました。
UMLと一言で言っても3種類のモードがあるということがわかりました。今後人と話すときは使い分けていきたいです。
- スケッチ
- 設計図面
- プログラミング言語
また、2つの観点が存在するとも書いてありました。
UMLは他に概念的とソフトウェア的観点の2つのモードが存在する
— モンゴル (@mongolyy) 2022年1月10日
概念的はドメイン理解をするためにドメインエキスパート等と共有するもの、ソフトウェア的観点は実装と関連づいたもの
エバンス本を読んだ直後なので、概念的観点と言われてもしっくりきた
個人的には概念的観点というのは初めて知りました。
最近読んだDDD本で、「UMLをドメインエキスパートと共有しながらドメインの会話をする」の旨の記述があって、「無理じゃね?」と思っていたのですが、本書により「概念的観点でのUMLを共有するということだったのかな?」ということで納得できました。
終わりに
UMLの記載方法はなんとなくわかっている人が、より理解を深めるための本でした。
マーチン・ファウラーさんの主観で、モデリングをする意味、ドキュメントを作る意味などが書かれており、大変勉強になりました。
また、UML自体はアジャイル開発と相性の良いツールとして作られたんだなーと理解し、今後私のチームでも積極的に使っていきたいなーと思いました。