- 3.1 Making Design Decisions
- 3.2 Design Concepts: The Building Blocks for Creating Structures
- 3.3 Design Concepts to Support Performance
- 3.4 Design Concepts to Support Availability
- 3.5 Design Concepts to Support Modifiability
- 3.6 Design Concepts to Support Security
- 3.7 Design Concepts to Support Integrability
- 3.8 Summary
- 3.9 Further Reading
- 3.10 Discussion Questions
3.8 Summary
This chapter, though quite long, barely scratched the surface of making design decisions. Even so, it identified some key principles for making design decisions—a way to reason rigorously about decision-making. In addition, we provided several examples of the design concepts (patterns and tactics) that serve as the building blocks of design. We hope that you are now prepared to examine other quality attributes, or other patterns for the quality attributes discussed here, in exactly the same way as demonstrated in this chapter. The ones we presented here are merely the most common ones, but they are not special in any other way.
Technologies (externally developed components) are also design concepts, though we did not discuss these extensively here. In subsequent chapters of this book (for example, Chapter 7, where we discuss cloud-based solutions), we will explore other specific design concerns such as technology choices.
This is all good news for the architect. Design, it turns out, is not mysterious. The design decisions that you can make for quality attributes encompass a substantial body of knowledge, but it is both tractable and learnable.