Jump to ratings and reviews
Rate this book

Designing Software Architectures: A Practical Approach

Rate this book
Designing Software Architectures" will teach you how to design any software architecture in a systematic, predictable, repeatable, and cost-effective way.
This book introduces a practical methodology for architecture design that any professional software engineer can use, provides structured methods supported by reusable chunks of design knowledge, and includes rich case studies that demonstrate how to use the methods. Using realistic examples, you ll master the powerful new version of the proven Attribute-Driven Design (ADD) 3.0 method and will learn how to use it to address key drivers, including quality attributes, such as modifiability, usability, and availability, along with functional requirements and architectural concerns. Drawing on their extensive experience, Humberto Cervantes and Rick Kazman guide you through crafting practical designs that support the full software life cycle, from requirements to maintenance and evolution. You ll learn how to successfully integrate design in your organizational context, and how to design systems that will be built with agile methods.
Comprehensive coverage includes Understanding what architecture design involves, and where it fits in the full software development life cycle Mastering core design concepts, principles, and processes Understanding how to perform the steps of the ADD method Scaling design and analysis up or down, including design for pre-sale processes or lightweight architecture reviews Recognizing and optimizing critical relationships between analysis and design Utilizing proven, reusable design primitives and adapting them to specific problems and contexts Solving design problems in new domains, such as cloud, mobile, or big data

320 pages, Hardcover

Published May 13, 2016

50 people are currently reading
451 people want to read

About the author

Humberto Cervantes

1 book1 follower

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
28 (39%)
4 stars
26 (36%)
3 stars
15 (21%)
2 stars
2 (2%)
1 star
0 (0%)
Displaying 1 - 7 of 7 reviews
Profile Image for Marian.
128 reviews6 followers
August 14, 2022
Як на книжку по архітектурі, читається дуже легко і зрозуміло. Багато корисних посилань. Проте приклади, приведені в книзі та частина матеріалу застаріла, через що трохи дисонує. Але як теоретияна методичка буде корисна
Profile Image for Nathaniel Inman.
42 reviews2 followers
August 19, 2021
There's little meat and a lot of repetitive fat to the content. Main takeaway is the ADD 3.0 methodology described in chapter 3 and used throughout the book in case studies, some alternative methods in chapter 7 and then an incredibly helpful appendix for identifying tactics based approaches (ex. Heartbeat, ping/echo, degradation, etc to help with availability concerns.)

Seriously, if the book was just chapters 3, 7 and the appendix it'd be a 5/5. If you're not a seasoned dev it's possible you may glean slightly more information if you can force yourself through the mundane parts.

The references after each chapter, however, sets this book on another level. An absolute superb job of providing additional reading. Without this I'd have given it a lower rating.
Profile Image for Stefan Albu.
35 reviews1 follower
November 2, 2020
The presented use-cases and methodical approach really hammers home the concept of architectural drivers and focusing on requirements - although using software instead of paper for doing the work seems more reasonable and future proof.
Profile Image for Michael.
90 reviews3 followers
November 4, 2021
A broad perspective on the methodologies that exist out there to design a system architecture. This book is very practical with plenty of references and even a few case studies. Interesting read overall.
Profile Image for WiseB.
222 reviews
January 25, 2025
Being a software architect back in the early 2000, I fully appreciate the value of the book for professional practising in such a role. The author not only revealed how software architecture design is about but also the Attribute-Driven Design (ADD) method that can be used by architects in the design process, with emphasis on drivers in particular quality attributes. This includes making design decisions to support performance, availability, modifiability, security and integrability. Steps and artifacts in the Architecture Design Process chapter are explained with the ADD method included, for example the use of reference architecture and design concepts catalogue.

The author also used a separate chapter to cover API-Centric Design and how ADD is useful in the design of APIs. Three chapters I like include "Designing for Deployability", "Designing Cloud-Based Solutions" and "Technical Debt in Architecture Design", which are not usually singled out to be discussed in architecture books.

Two cases, "Hotel Pricing System" and "Digital Twin Platform" are included with their Business Case, System Requirements, Development and Operations Requirements. These are followed with iterations of an architectural design for each of cases using ADD method in the design process.

Readers have to note that ADD is not the method for actual software architecture but a means to help in design decisions. Selection of reference architecture and any bespoke changes to it is the architect's call subject to the usage and requirements of the system. In addition to those reference architectures used by the author, there are other notable reference architectures including Domain-Driven Design, Model-Driven Architecture, Component-Based Design, Service-Oriented Architecture, Event-Driven Architecture, Layered Architecture Design, Object-Oriented Design, Data-Centric Architecture Design, DevOps-Driven Design etc.
Profile Image for Aiman Adlawan.
123 reviews3 followers
March 10, 2019
This book comprehensively explains the ADD method (Attribute Driven Design) of designing a software. It catalogues each technique and methodology so you can understand it better and it also provides schemas on how you can go through each build process.
Its not an easy read book but not hard to understand. I do not have a software engineer degree and I want to learn more about it so I read this book. If you are a software engineer and want to be better, this book can be of help.
Displaying 1 - 7 of 7 reviews

Can't find what you're looking for?

Get help and learn more about the design.