Requirements for a system come in three categories:
- Functional. These requirements are satisfied by including an appropriate set of responsibilities within the design.
- Quality attribute. These requirements are satisfied by the structures and behaviors of the architecture.
- Constraints. A constraint is a design decision that’s already been made.
To express a quality attribute requirement, we use a quality attribute scenario. The parts of the scenario are these:
- Source of stimulus
- Response measure
An architectural tactic is a design decision that affects a quality attribute response. The focus of a tactic is on a single quality attribute response. Architectural patterns can be seen as “packages” of tactics.
The seven categories of architectural design decisions are these:
- Allocation of responsibilities
- Coordination model
- Data model
- Management of resources
- Mapping among architectural elements
- Binding time decisions
- Choice of technology