REVIEW - Designing Software Architectures - A Practical Approach


Designing Software Architectures

A Practical Approach


Rick Kazman, Humberto Cervantes


Addison-Wesley Professional (2016)




Marco Dinacci


January 2017



Reviewed: January 2017

Designing Software Architecture eschews formal architectural models such as the IEEE standards or the “4+1” view model and provides instead a more practical (according to the authors) view of architecting a software system. The authors refer to the design process they adopted as ADD Attribute-Driven-Design (ADD).

The book is essentially split into four main sections.

The first part is a definition of architectural design and is mostly aimed in my opinion to new software architects. The second part goes into the description of the ADD architectural design process. The third, probably the most useful part of the book, focuses on use cases. This is where one can actually see what ADD involves in practice. The last part are appendixes on design useful for reference.

The first part of ADD consists on capturing functional and non functional requirements using what the authors call Use Case Model, Quality Attribute Scenarios and Constraints.

There is a refreshing focus on iterations in this methodology, which is something usually missing from other architecture methodologies but still enough rigour so that an inexperienced architect won’t feel lost during the process.

The first part of the design process is about capturing the overall software architecture in text and diagrams and recording the design decisions. The last bit of the first iteration is about cross-referencing the use case model with the chosen architecture to make sure all use cases are addressed.

The second iteration is about selecting technologies and explaining the rational for selecting one or another. The following iterations goes more in detail into aspects specific to the chosen architecture.

Overall I recommend this book to all software architects. ADD may not be the most suitable methodology for every project but it’s another tool at our disposal. The use cases are well described and serve as a reference while attempting to use this system in the real world.

Book cover image courtesy of Open Library.

Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED

By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED

Settings can be changed at any time from the Cookie Policy page.