Foundations: what software engineering claims to be, where design sits in the lifecycle, who the architecture serves, and what separates an architectural decision from a detailed one.
A systematic, disciplined, quantifiable approach to software development, operation and maintenance.
The three things an architecture description is about.
| Architecture | Detailed Design | |
|---|---|---|
| Scope | System-wide structures | Individual components and collaborations |
| Output | Elements, visible properties, relationships | Classes, interfaces, algorithms, data structures |
| Cost to reverse | Expensive, affects many teams and qualities | Local and cheaply replaced |
| Example | Split the shop into catalog, cart and payment services over HTTP | Inside the cart, a HashMap keyed by SKU and a Strategy per discount rule |
The small set of requirements with major architectural influence.