Home > Store

Designing Software Architectures: A Practical Approach

Designing Software Architectures: A Practical Approach

eBook (Watermarked)

  • Your Price: $28.79
  • List Price: $35.99
  • Includes EPUB, MOBI, 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.

    MOBI MOBI The eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

    Adobe Reader PDF The popular standard, used most often with the free Adobe® 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.

Also available in other formats.

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

Description

  • Copyright 2016
  • Dimensions: 6-1/4" x 9-1/4"
  • Pages: 320
  • Edition: 1st
  • eBook (Watermarked)
  • ISBN-10: 0-13-439086-5
  • ISBN-13: 978-0-13-439086-4

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 

Sample Content

Sample Pages

Download the sample pages (includes Chapter 2 and Index)

Table of Contents

Preface xiii

Acknowledgments xvii

Chapter 1: Introduction 1

1.1 Motivations 1

1.2 Software Architecture 3

1.3 The Role of the Architect 7

1.4 A Brief History of ADD 8

1.5 Summary 9

1.6 Further Reading 10

Chapter 2: Architectural Design 11

2.1 Design in General 11

2.2 Design in Software Architecture 13

2.3 Why Is Architectural Design So Important? 16

2.4 Architectural Drivers 17

2.5 Design Concepts: The Building Blocks for Creating Structures 28

2.6 Architecture Design Decisions 38

2.7 Summary 40

2.8 Further Reading 41

Chapter 3: The Architecture Design Process 43

3.1 The Need for a Principled Method 43

3.2 Attribute-Driven Design 3.0 44

3.3 Following a Design Roadmap According to System Type 49

3.4 Identifying and Selecting Design Concepts 53

3.5 Producing Structures 58

3.6 Defining Interfaces 61

3.7 Creating Preliminary Documentation During Design 65

3.8 Tracking Design Progress 69

3.9 Summary 72

3.10 Further Reading 72

Chapter 4: Case Study: FCAPS System 75

4.1 Business Case 75

4.2 System Requirements 77

4.3 The Design Process 80

4.4 Summary 105

4.5 Further Reading 105

Chapter 5: Case Study: Big Data System 107

5.1 Business Case 107

5.2 System Requirements 108

5.3 The Design Process 111

5.4 Summary 143

5.5 Further Reading 144

Chapter 6: Case Study: Banking System 145

6.1 Business Case 145

6.2 Existing Architectural Documentation 149

6.3 The Design Process 151

6.4 Summary 158

6.5 Further Reading 159

Chapter 7: Other Design Methods 161

7.1 A General Model of Software Architecture Design 161

7.2 Architecture-Centric Design Method 164

7.3 Architecture Activities in the Rational Unified Process 165

7.4 The Process of Software Architecting 167

7.5 A Technique for Architecture and Design 169

7.6 Viewpoints and Perspectives Method 171

7.7 Summary 173

7.8 Further Reading 174

Chapter 8: Analysis in the Design Process 175

8.1 Analysis and Design 175

8.2 Why Analyze? 178

8.3 Analysis Techniques 179

8.4 Tactics-Based Analysis 180

8.5 Reflective Questions 186

8.6 Scenario-Based Design Reviews 187

8.7 Architecture Description Languages 190

8.8 Summary 191

8.9 Further Reading 192

Chapter 9: The Architecture Design Process in the Organization 193

9.1 Architecture Design and the Development Life Cycle 193

9.2 Organizational Aspects 202

9.3 Summary 204

9.4 Further Reading 204

Chapter 10: Final Words 207

10.1 On the Need for Methods 207

10.2 Next Steps 209

10.3 Further Reading 210

Appendix A: A Design Concepts Catalog 211

A.1 Reference Architectures 211

A.2 Deployment Patterns 221

A.3 Architectural Design Patterns 224

A.4 Tactics 230

A.5 Externally Developed Components 241

A.6 Summary 245

A.7 Further Reading 246

Appendix B: Tactics-Based Questionnaires 247

B.1 Using the Questionnaires 247

B.2 Availability 248

B.3 Interoperability 252

B.4 Modifiability 253

B.5 Performance 255

B.6 Security 257

B.7 Testability 260

B.8 Usability 261

B.9 DevOps 263

B.10 Further Reading 267

Glossary 269

About the Authors 275

Index 277 

Updates

Submit Errata

More Information

Unlimited one-month access with your purchase
Free Safari Membership