Contents

Preface

Reader’s Guide

Acknowledgments

Part One Introduction

Chapter 1 What Is Software Architecture?

1.1 What Software Architecture Is and What It Isn’t

1.2 Architectural Structures and Views

1.3 Architectural Patterns

1.4 What Makes a “Good” Architecture?

1.5 Summary

1.6 For Further Reading

1.7 Discussion Questions

Chapter 2 Why Is Software Architecture Important?

2.1 Inhibiting or Enabling a System’s Quality Attributes

2.2 Reasoning About and Managing Change

2.3 Predicting System Qualities

2.4 Enhancing Communication among Stakeholders

2.5 Carrying Early Design Decisions

2.6 Defining Constraints on an Implementation

2.7 Influencing the Organizational Structure

2.8 Enabling Evolutionary Prototyping

2.9 Improving Cost and Schedule Estimates

2.10 Supplying a Transferable, Reusable Model

2.11 Allowing Incorporation of Independently Developed Components

2.12 Restricting the Vocabulary of Design Alternatives

2.13 Providing a Basis for Training

2.14 Summary

2.15 For Further Reading

2.16 Discussion Questions

Chapter 3 The Many Contexts of Software Architecture

3.1 Architecture in a Technical Context

3.2 Architecture in a Project Life-Cycle Context

3.3 Architecture in a Business Context

3.4 Architecture in a Professional Context

3.5 Stakeholders

3.6 How Is Architecture Influenced?

3.7 What Do Architectures Influence?

3.8 Summary

3.9 For Further Reading

3.10 Discussion Questions

Part Two Quality Attributes

Chapter 4 Understanding Quality Attributes

4.1 Architecture and Requirements

4.2 Functionality

4.3 Quality Attribute Considerations

4.4 Specifying Quality Attribute Requirements

4.5 Achieving Quality Attributes through Tactics

4.6 Guiding Quality Design Decisions

4.7 Summary

4.8 For Further Reading

4.9 Discussion Questions

Chapter 5 Availability

5.1 Availability General Scenario

5.2 Tactics for Availability

5.3 A Design Checklist for Availability

5.4 Summary

5.5 For Further Reading

5.6 Discussion Questions

Chapter 6 Interoperability

6.1 Interoperability General Scenario

6.2 Tactics for Interoperability

6.3 A Design Checklist for Interoperability

6.4 Summary

6.5 For Further Reading

6.6 Discussion Questions

Chapter 7 Modifiability

7.1 Modifiability General Scenario

7.2 Tactics for Modifiability

7.3 A Design Checklist for Modifiability

7.4 Summary

7.5 For Further Reading

7.6 Discussion Questions

Chapter 8 Performance

8.1 Performance General Scenario

8.2 Tactics for Performance

8.3 A Design Checklist for Performance

8.4 Summary

8.5 For Further Reading

8.6 Discussion Questions

Chapter 9 Security

9.1 Security General Scenario

9.2 Tactics for Security

9.3 A Design Checklist for Security

9.4 Summary

9.5 For Further Reading

9.6 Discussion Questions

Chapter 10 Testability

10.1 Testability General Scenario

10.2 Tactics for Testability

10.3 A Design Checklist for Testability

10.4 Summary

10.5 For Further Reading

10.6 Discussion Questions

Chapter 11 Usability

11.1 Usability General Scenario

11.2 Tactics for Usability

11.3 A Design Checklist for Usability

11.4 Summary

11.5 For Further Reading

11.6 Discussion Questions

Chapter 12 Other Quality Attributes

12.1 Other Important Quality Attributes

12.2 Other Categories of Quality Attributes

12.3 Software Quality Attributes and System Quality Attributes

12.4 Using Standard Lists of Quality Attributes—or Not

12.5 Dealing with “X-ability”: Bringing a New Quality Attribute into the Fold

12.6 For Further Reading

12.7 Discussion Questions

Chapter 13 Architectural Tactics and Patterns

13.1 Architectural Patterns

13.2 Overview of the Patterns Catalog

13.3 Relationships between Tactics and Patterns

13.4 Using Tactics Together

13.5 Summary

13.6 For Further Reading

13.7 Discussion Questions

Chapter 14 Quality Attribute Modeling and Analysis

14.1 Modeling Architectures to Enable Quality Attribute Analysis

14.2 Quality Attribute Checklists

14.3 Thought Experiments and Back-of-the-Envelope Analysis

14.4 Experiments, Simulations, and Prototypes

14.5 Analysis at Different Stages of the Life Cycle

14.6 Summary

14.7 For Further Reading

14.8 Discussion Questions

Part Three Architecture in the Life Cycle

Chapter 15 Architecture in Agile Projects

15.1 How Much Architecture?

15.2 Agility and Architecture Methods

15.3 A Brief Example of Agile Architecting

15.4 Guidelines for the Agile Architect

15.5 Summary

15.6 For Further Reading

15.7 Discussion Questions

Chapter 16 Architecture and Requirements

16.1 Gathering ASRs from Requirements Documents

16.2 Gathering ASRs by Interviewing Stakeholders

16.3 Gathering ASRs by Understanding the Business Goals

16.4 Capturing ASRs in a Utility Tree

16.5 Tying the Methods Together

16.6 Summary

16.7 For Further Reading

16.8 Discussion Questions

Chapter 17 Designing an Architecture

17.1 Design Strategy

17.2 The Attribute-Driven Design Method

17.3 The Steps of ADD

17.4 Summary

17.5 For Further Reading

17.6 Discussion Questions

Chapter 18 Documenting Software Architectures

18.1 Uses and Audiences for Architecture Documentation

18.2 Notations for Architecture Documentation

18.3 Views

18.4 Choosing the Views

18.5 Combining Views

18.6 Building the Documentation Package

18.7 Documenting Behavior

18.8 Architecture Documentation and Quality Attributes

18.9 Documenting Architectures That Change Faster Than You Can Document Them

18.10 Documenting Architecture in an Agile Development Project

18.11 Summary

18.12 For Further Reading

18.13 Discussion Questions

Chapter 19 Architecture, Implementation, and Testing

19.1 Architecture and Implementation

19.2 Architecture and Testing

19.3 Summary

19.4 For Further Reading

19.5 Discussion Questions

Chapter 20 Architecture Reconstruction and Conformance

20.1 Architecture Reconstruction Process

20.2 Raw View Extraction

20.3 Database Construction

20.4 View Fusion

20.5 Architecture Analysis: Finding Violations

20.6 Guidelines

20.7 Summary

20.8 For Further Reading

20.9 Discussion Questions

Chapter 21 Architecture Evaluation

21.1 Evaluation Factors

21.2 The Architecture Tradeoff Analysis Method

21.3 Lightweight Architecture Evaluation

21.4 Summary

21.5 For Further Reading

21.6 Discussion Questions

Chapter 22 Management and Governance

22.1 Planning

22.2 Organizing

22.3 Implementing

22.4 Measuring

22.5 Governance

22.6 Summary

22.7 For Further Reading

22.8 Discussion Questions

Part Four Architecture and Business

Chapter 23 Economic Analysis of Architectures

23.1 Decision-Making Context

23.2 The Basis for the Economic Analyses

23.3 Putting Theory into Practice: The CBAM

23.4 Case Study: The NASA ECS Project

23.5 Summary

23.6 For Further Reading

23.7 Discussion Questions

Chapter 24 Architecture Competence

24.1 Competence of Individuals: Duties, Skills, and Knowledge of Architects

24.2 Competence of a Software Architecture Organization

24.3 Summary

24.4 For Further Reading

24.5 Discussion Questions

Chapter 25 Architecture and Software Product Lines

25.1 An Example of Product Line Variability

25.2 What Makes a Software Product Line Work?

25.3 Product Line Scope

25.4 The Quality Attribute of Variability

25.5 The Role of a Product Line Architecture

25.6 Variation Mechanisms

25.7 Evaluating a Product Line Architecture

25.8 Key Software Product Line Issues

25.9 Summary

25.10 For Further Reading

25.11 Discussion Questions

Part Five The Brave New World

Chapter 26 Architecture in the Cloud

26.1 Basic Cloud Definitions

26.2 Service Models and Deployment Options

26.3 Economic Justification

26.4 Base Mechanisms

26.5 Sample Technologies

26.6 Architecting in a Cloud Environment

26.7 Summary

26.8 For Further Reading

26.9 Discussion Questions

Chapter 27 Architectures for the Edge

27.1 The Ecosystem of Edge-Dominant Systems

27.2 Changes to the Software Development Life Cycle

27.3 Implications for Architecture

27.4 Implications of the Metropolis Model

27.5 Summary

27.6 For Further Reading

27.7 Discussion Questions

Chapter 28 Epilogue

References

About the Authors

Index

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.242.235