Just Enough Software Architecture: A Risk-Driven Approach Book Review
|I must admit that the title of this book made me hesitate to purchase it. I am not a big fan of placing the architecture process inside one of the concerns architecture addresses. "Risk-Driven Approach" scared me off because of some of the other attempts to do something similar with security, performance, agility, and patterns. Although all these topics are part of the architecture process, they do not drive it on there own.|
Having said all that, I was releaved to see my worries about what I would find in the book where not valid. To me this book is a good overview of what Software Architecture is, which of course incudes addressing risks. There is a chapter on the risk-driven model which does a good job of putting risks into the proper context. It does a good job of showing how risk concerns relate to the development process. The book does not obsess on risk. It just brings to light an important part of what architecture addresses.
The books starts with an overview of software architecture concepts and does a good job of explaining what software architecture is. It also includes a short case study.
The second part of the book covers the Domain Model, Design Model, Code Model, Encapsulation and Partitioning, Model Elements, Model Relationships, and Architectural Styles. Each topic is given its own chapter, and there are a lot of great diagrams throughout the book. I really like that the author covered code and bridging the gap between models and code. I also like how he explains the relationship between models.
The book referred to industry best practices and did not try to re-invent the wheel. The author has his PhD in software engineering from CMU, so there are a lot of references to SEI practices. The author also contributed to the new version of Documenting Software Architectures: Views and Beyond (2nd Edition).
I also like the glossary. It does a great job of summing up architectural topics.
All in all anyone interested in Software Architecture would benefit from reading this book. It contains a ton of great information from all the best resources on software architecture and does a great job of putting them into context.