SE322 · QABLUEPRINT
Study Blueprint — Do not scale from drawing

Quality Attributes

Chapter 03 · L01 — how architects turn fuzzy words like "secure" and "fast" into scenarios you can actually test, plus the tactics and design decisions that make them real.

Drawn byShoug Alomran
CourseSE322 · Software Design & Architecture
Scale1 : Simplified
Sheets00 – 08
01

Architecture & Requirements

Where quality lives

Functional Requirements

State what the system must do — "the system shall <behavior>." Their implementation plan lives in the detailed design.

Non-functional Requirements (Quality Attributes)

Judge the system as a whole rather than one behavior. Their implementation plan lives in the architecture.

Key idea Architecture alone cannot achieve quality. It lays the foundation — but that foundation is wasted if implementation and deployment don't follow through with the same care.

Whose priority is it, anyway?

Architecture documents serve many stakeholders — developers, managers, sales, testers, support, maintenance, customers — and each cares about a different quality attribute most:

  • Development team → Maintainability
  • QA team → Testability
  • End user → Usability / Performance (what they directly feel)
02

Quality Attribute Considerations

Not the "what", the "how"

Quality attributes are constraints on how the system delivers its functionality — not the functionality itself. They're the criteria used to judge the system's performance and effectiveness during and after development (efficiency, availability, scalability, adaptability, security, dependability...).

Same functional requirement, three different QA lenses: "When the user presses the green button, the Options dialog appears."

  • Performance QA → how quickly the dialog appears
  • Availability QA → how often this function fails
  • Usability QA → how easy it is to learn
03

The Problem: Fuzzy, Overlapping Attributes

Why we need scenarios

Quality attributes often have unstable definitions or overlapping concerns. Classic example: is a system failure from a Denial-of-Service attack about availability, performance, security, or usability?

Availability

System is down

Performance

System becomes very slow

Security

The attack is a breach

Usability

Users can't access the service

All four are "correct" — the same problem overlaps multiple attributes. Vague labels aren't precise enough to design or test against.

The fix Quality Attribute Scenarios. Instead of arguing over labels, describe a concrete, testable scenario: Stimulus → Response → Measure.

Example — Availability, made concrete: If the payment server crashes during a transaction (stimulus), the system shall automatically switch to a backup server within 2 seconds (response), guaranteeing 99.99% uptime (measure). Now it's clear, testable, and non-overlapping.

04

Anatomy of a Quality Attribute Scenario

6 parts
Mnemonic "Some Silly Elephants Ate Red Raspberries"Source → Stimulus → Environment → Artifact → Response → Response Measure.
1 · SourceWho/what triggers it — human, computer system, attacker...
2 · StimulusThe condition to consider — a request, failure, attack
3 · EnvironmentThe conditions when it occurs — under load, at startup...
4 · ArtifactThe part of the system stimulated — DB, server, UI
5 · ResponseThe activity undertaken after the stimulus arrives
6 · Response MeasureHow success is judged — must be testable

The fill-in-the-blank template

"Some (source) generates some events (stimulus) that arrive at some (artifact) under some conditions (environment) and must be dealt with (response) in a satisfactory way (response measure)."

05

Worked Scenario Examples

See it in action

Performance Scenario

Source
Users
Stimulus
Initiate transactions
Artifact
The system
Environment
Under normal operations
Response
Transactions are processed
Response Measure
Average latency of two seconds

Maintainability Scenario

Source
Developer
Stimulus
Wishes to change the UI
Artifact
Code
Environment
At design time
Response
Modification is made with no side effects
Response Measure
Within three hours

General Availability Scenario

Source
Internal or external to the system
Stimulus
Crash, omission, timing, no response, or incorrect response
Artifact
System's processors, communication channels, persistent storage
Environment
Normal operation, startup, shutdown, repair mode, degraded/failsafe mode, overloaded operation
Response
Prevent the failure, log it, notify users/operators, disable the failure source, or go temporarily unavailable
Response Measure
Time interval available, availability %, detection time, repair time, degraded-mode time interval, unavailability time interval
Stimulus sub-types, decoded

Crash — sudden failure of the system.

Omission — failure to respond when expected.

Timing — response arrives at the wrong time.

No Response — complete lack of a response.

Incorrect Response — the system responds, but wrongly.

Source sub-types, decoded

Internal to system — a bug, a memory leak — problems from within.

External to system — a power outage, a hacking attempt — problems from outside.

06

Tactics

The architect's toolbox

Tactics are primitive design techniques an architect uses to achieve a quality-attribute response — architectural building blocks, much like design patterns, distilled from years of experienced-architect know-how.

StimulusComes in
Tactics to Control ResponseThe design technique applied
ResponseGoes out, shaped by the tactic

In short: tactics are intended to control responses to stimuli.

Redundancy

Purpose: prevent system failure when a component fails.

Tactic: run multiple instances of critical components so others take over if one fails.

Stimulus: hardware failure, network outage.

Response: automatic failover to backup systems.

Caching

Purpose: improve response time, reduce system load.

Tactic: store frequently accessed data somewhere fast to reach.

Stimulus: a high number of read requests.

Response: serve from cache instead of re-fetching from primary storage.

07

Quality Design Decisions

7 categories

Architecture design is a systematic way of making decisions — and those decisions sort into 7 categories.

Mnemonic "Angry Cats Destroy My Big Comfy Mattress"Allocation of responsibilities → Coordination model → Data model → Management of resources → Binding time → Choice of technology → Mapping among elements.
Decision What it's really about Example
Allocation of Responsibilities Which part of the system handles which task Login module vs. cart module vs. payment module in a shopping app
Coordination Model How parts communicate and work together Payment system informs inventory when an item sells
Data Model What data exists, how it's organized and accessed A Customer object with name, address, order history
Management of Resources How memory, CPU, and bandwidth are allocated Reserving extra server capacity for high-traffic periods
Binding Time When architectural elements get set or chosen Language preference set at install vs. at runtime
Choice of Technology Languages, databases, platforms selected Python backend + PostgreSQL + AWS hosting
Mapping among Elements How code modules map to runtime elements A UI module mapped to the services it calls at runtime
08

Quick Self-Test

Cover the answer, then click
Where is the plan for functional requirements produced? Non-functional?
Functional → detailed design. Non-functional (quality attributes) → the architecture.
Why can't architecture alone guarantee quality?
It only provides the foundation — implementation and deployment must follow through with the same care.
What are the 6 parts of a quality attribute scenario?
Source, Stimulus, Environment, Artifact, Response, Response Measure.
Why do we use quality attribute scenarios instead of just naming the attribute?
Because attributes have unstable/overlapping definitions (e.g. a DoS attack touches availability, performance, security, and usability at once) — scenarios make them concrete and testable.
What is a "tactic" in architecture?
A primitive design technique used to control a quality attribute's response to a stimulus.
Give an example of a Redundancy tactic.
Running multiple instances of a critical component so the system automatically fails over if one instance goes down.
What are the 7 categories of quality design decisions?
Allocation of responsibilities, Coordination model, Data model, Management of resources, Binding time, Choice of technology, Mapping among elements.
Which quality design decision covers "when" something is set — install time vs. runtime?
Binding time decisions.
In the "green button → Options dialog" example, what would a Performance QA describe?
How quickly the dialog appears.
Which stakeholder typically cares most about testability?
The QA (quality assurance) team.