|
| 1 | +# Chapter 10 — Quality Scenarios |
| 2 | + |
| 3 | +## Format: Six-Part Quality Attribute Scenario (Bass/Clements/Kazman) |
| 4 | + |
| 5 | +Every Chapter 10 quality scenario is written in this form: |
| 6 | + |
| 7 | +| Part | Description | Example | |
| 8 | +|------|-------------|---------| |
| 9 | +| **Source** | Who or what triggers the stimulus | End user, CI pipeline, attacker | |
| 10 | +| **Stimulus** | The event or condition | 1000 concurrent requests, node failure, SQL injection attempt | |
| 11 | +| **Artifact** | What is affected | Order Service, API Gateway, Database | |
| 12 | +| **Environment** | Under what conditions | Normal operation, peak load, degraded mode | |
| 13 | +| **Response** | What the system does | Queues excess requests, fails over, rejects input | |
| 14 | +| **Response Measure** | Literal, testable figure | p99 < 200ms, failover < 30s, zero data exposure | |
| 15 | + |
| 16 | +The **Response Measure** carries a literal figure, so the requirement is testable rather than an adjective ("fast", "secure", "available"). |
| 17 | + |
| 18 | +## Chapter 1.2 vs. Chapter 10 |
| 19 | + |
| 20 | +- **Chapter 1.2** lists only the top 3–5 quality goals — the ones that drive architecture decisions. |
| 21 | +- **Chapter 10** may elaborate further quality characteristics beyond those top goals. |
| 22 | +- Each Chapter 10 scenario is marked as either: |
| 23 | + - **Concretising** a Chapter 1.2 top goal (cross-link which one), or |
| 24 | + - **Derived** — a quality requirement that does not trace to a top goal but matters for the system. |
| 25 | + |
| 26 | +## Deriving scenarios from code |
| 27 | + |
| 28 | +When evidence exists in code (timeouts, budgets, SLOs, test thresholds), derive scenarios as `[ANSWERED]` with `file:line` evidence. Never invent target numbers — only the quality-goal *ranking* is a team decision. |
0 commit comments