Designing Software Architectures A Practical Approach

by ;
  • ISBN13:


  • ISBN10:


  • Edition: 1st
  • Format: Hardcover
  • Copyright: 5/20/2016
  • Publisher: Addison-Wesley Professional

Note: Supplemental materials are not guaranteed with Rental or Used book purchases.

Purchase Benefits

  • Free Shipping On Orders Over $59!
    Your order must be $59 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $44.99 Save up to $15.75
  • Rent Book $29.24
    Add to Cart Free Shipping


Supplemental Materials

What is included with this book?

  • The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
  • The Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.


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 

Author Biography

Humberto Cervantes is a professor at Universidad Autónoma Metropolitana Iztapalapa in Mexico City. His primary research interest is software architecture and, more specifically, the development of methods and tools to aid in the design process. He is active in promoting the adoption of these methods and tools in the software industry. Since 2006, Cervantes has been a consultant for software development companies in topics related to software architecture. He has authored numerous research papers and popularization articles, and has also coauthored one of the few books in Spanish on the topic of software architecture. Cervantes received a master’s degree and a Ph.D. from Université Joseph Fourier in Grenoble, France. He holds the Software Architecture Professional and ATAM Evaluator certificates from the SEI.


Rick Kazman is a professor at the University of Hawaii and a principal researcher at the Software Engineering Institute of Carnegie Mellon University. His primary research interests are software architecture, design and analysis tools, software visualization, and software engineering economics. Kazman has created several highly influential methods and tools for architecture analysis, including the SAAM (Software Architecture Analysis Method), the ATAM (Architecture Tradeoff Analysis Method), the CBAM (Cost-Benefit Analysis Method), and the Dali and Titan tools. He is the author of more than one hundred fifty peer-reviewed papers, and is coauthor of several books, including Software Architecture in Practice, Third Edition (Addison-Wesley, 2013), Evaluating Software Architectures (Addison-Wesley, 2002), and Ultra-Large-Scale Systems. Kazman received a B.A. (English/music) and M.Math (computer science) from the University of Waterloo, an M.A. (English) from York University, and a Ph.D. (computational linguistics) from Carnegie Mellon University.

Table of Contents

1. Introduction
2. Architectural Design
3. The Architecture Design Process
4. Extended Design Example: FCAPS System
5. Extended Design Example: SoftServe Lambda Architecture System
6. Analysis in the Design Process
7. Extended Analysis Example
8. The Architecture Design Process in the Organization
9. Case Study of Architecture Processes in the Organization: Bursatec
10. Reference Architectures for Emerging Domains
11. Final Thoughts/Future Directions
Appendix A: A Design Concepts Catalog
Appendix B: Tactics-Based

Rewards Program

Write a Review