Home > Store

Designing Software Architectures: A Practical Approach, 2nd Edition

Register your product to gain access to bonus material or receive a coupon.

Designing Software Architectures: A Practical Approach, 2nd Edition

Best Value Purchase

Book + eBook Bundle

  • Your Price: $59.39
  • List Price: $98.98
  • Includes EPUB and PDF
  • About eBook Formats
  • This eBook includes the following formats, accessible from your Account page after purchase:

    ePub EPUB The open industry format known for its reflowable content and usability on supported mobile devices.

    Adobe Reader PDF The popular standard, used most often with the free Acrobat® Reader® software.

    This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.

More Purchase Options

Book

  • Your Price: $43.99
  • List Price: $54.99
  • Usually ships in 24 hours.

eBook

  • Your Price: $35.19
  • List Price: $43.99
  • Includes EPUB and PDF
  • About eBook Formats
  • This eBook includes the following formats, accessible from your Account page after purchase:

    ePub EPUB The open industry format known for its reflowable content and usability on supported mobile devices.

    Adobe Reader PDF The popular standard, used most often with the free Acrobat® Reader® software.

    This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.

Description

  • Copyright 2024
  • Dimensions: 7" x 9-1/8"
  • Pages: 336
  • Edition: 2nd
  • Book
  • ISBN-10: 0-13-810802-1
  • ISBN-13: 978-0-13-810802-1

Learn how to create successful architectural designs and improve your current design practices!

Designing Software Architectures, 2nd Edition, provides a practical, step-by-step methodology for architecture design that any professional software engineer can use, with structured methods supported by reusable chunks of design knowledge and rich case studies that demonstrate how to use the methods.

The Attribute-Driven Design method may not have changed since this book's first printing, but almost everything else about the industry has. In this newly updated edition, you will find new chapters on supporting business agility through API-centric design, deployability, cloud-based solutions, and technical debt in design.

Humberto Cervantes and Rick Kazman illuminate best practices for how architects should design complex systems so you can make design decisions in systematic, repeatable, and cost-effective ways. This book will help you become a better, more confident designer who can create high-quality architectures with ease.

The new edition includes:

  • A clear explanation of the Attribute-Driven Design method
  • New chapters focused on the technical environments and contexts of contemporary design
  • Two new case studies on The Hotel Pricing System and Digital Twin Platform
  • Coverage of current architecture topics like cloud computing, DevOps, and large-scale systems
  • Methods to make architecture design agile and achievable

Register your product at informit.com/register for convenient access to downloads, updates, and/or corrections as they become available.

Sample Content

Online Sample Chapter

Making Design Decisions

Sample Pages

Download the sample pages (includes Chapter 3)

Table of Contents

Preface    xi

Acknowledgments    xiii

About the Authors     xv

CHAPTER 1: Introduction     1

1.1 Motivations     1

1.2 Software Architecture     2

1.3 The Role of the Architect     6

1.4 A Brief History of ADD     7

1.5 Summary     8

1.6 Further Reading      8

1.7 Discussion Questions      9

CHAPTER 2: Architectural Design      11

2.1 Design in General      11

2.2 Design in Software Architecture      12

2.3 Why Is Architectural Design So Important?       16

2.4 Architectural Drivers      17

2.5 Summary      26

2.6 Further Reading      26

2.7 Discussion Questions      27

CHAPTER 3: Making Design Decisions      29

3.1 Making Design Decisions      29

3.2 Design Concepts: The Building Blocks for Creating Structures      32

3.3 Design Concepts to Support Performance      39

3.4 Design Concepts to Support Availability      41

3.5 Design Concepts to Support Modifiability      46

3.6 Design Concepts to Support Security      49

3.7 Design Concepts to Support Integrability      53

3.8 Summary      57

3.9 Further Reading      57

3.10 Discussion Questions      58

CHAPTER 4: The Architecture Design Process      59

4.1 The Need for a Principled Method      59

4.2 Attribute-Driven Design 3.0      60

4.3 Applying ADD to Different System Contexts      66

4.4 Identifying and Selecting Design Concepts      70

4.5 Producing Structures      74

4.6 Defining Interfaces      77

4.7 Creating Preliminary Documentation During Design      81

4.8 Tracking Design Progress      85

4.9 Summary      87

4.10 Further Reading      88

4.11 Discussion Questions      89

CHAPTER 5: API-centric Design      91

5.1 Business Agility      91

5.2 API-centric Design      93

5.3 API-centric Design and ADD      107

5.4 Summary      110

5.5 Further Reading      110

5.6 Discussion Questions      111

CHAPTER 6: Designing for Deployability      113

6.1 Deployability Principles and Architectural Design      113

6.2 Design Decisions to Support Deployability      119

6.3 Deployability and ADD      128

6.4 Summary      129

6.5 Further Reading      130

6.6 Discussion Questions      130

CHAPTER 7: Designing Cloud-Based Solutions      133

7.1 Introduction to the Cloud      133

7.2 Drivers and the Cloud      136

7.3 Cloud-Based Design Concepts      139

7.4 ADD in the Design of Cloud-Based Solutions      147

7.5 Summary      148

7.6 Further Reading      148

7.7 Discussion Questions      149

CHAPTER 8: Case Study: Hotel Pricing System      151

8.1 Business Case      151

8.2 System Requirements      153

8.3 Development and Operations Requirements 1     56

8.4 The Software Design Process      158

8.5 Summary      188

8.6 Further Reading      189

8.7 Discussion Questions      189

CHAPTER 9: Case Study: Digital Twin Platform      191

9.1 Business Case      192

9.2 System Requirements      193

9.3 The Design Process      195

9.4 Summary      223

9.5 Further Reading      224

9.6 Discussion Questions      225

CHAPTER 10: Technical Debt in Architectural Design      227

10.1 Technical Debt      227

10.2 The Roots of Technical Debt in Design      228

10.3 Refactoring and Redesign      231

10.4 Technical Debt and ADD      233

10.5 Summary      235

10.6 Further Reading      236

10.7 Discussion Questions      237

CHAPTER 11: Analysis in the Design Process      239

11.1 Analysis and Design      239

11.2 Why Analyze?       242

11.3 Analysis Techniques      243

11.4 Tactics-Based Analysis      244

11.5 Reflective Questions      246

11.6 Scenario-Based Design Reviews      247

11.7 Summary      250

11.8 Further Reading      251

11.9 Discussion Questions      251

CHAPTER 12: The Architecture Design Process in the Organization      253

12.1 Architecture Design and the Development Life Cycle      253

12.2 Architecture Design and the Organization      263

12.3 Summary      268

12.4 Further Reading      269

12.5 Discussion Questions      270

CHAPTER 13: Final Thoughts      273

13.1 On the Need for Methods      273

13.2 Future Directions      275

13.3 Next Steps      276

13.4 Further Reading      277

13.5 Discussion Questions      277

Appendix Tactics-Based Questionnaires      279

Index      301

Updates

Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.