QA·Field Guide
DARK
SE322 · Software Design & Architecture · Chapter 03

Quality Attributes,
measured & mnemonic'd.

Every quality attribute scenario is really the same instrument reading a different dial: something happens (stimulus), it hits a part of the system (artifact), the system reacts (response), and you grade it with a number (measure). Learn that one shape, and all nine attributes fall into place.

9 quality attributes
6-part scenario anatomy
6 attributes × tactics trees
Midterm-tested
SOURCE STIMULUS ARTIFACT ENVIRONMENT RESPONSE MEASURE
§ 01 — THE BIG NINE

Every quality attribute the course tests

Six of these get full "scenario + tactics" treatment (starred ★) — those are the ones the exam loves. The rest still show up in definitions questions, so know them by one line each.

🧠
Memory hook — say it out loud
"Ugly Monkeys Sometimes Prefer Really Purple Tacos And Ice-cream"
Usability · Modifiability · Security · Performance · Reliability · Portability · Testability · Availability · Interoperability
★ core
U

Usability

How easy it is to learn and use the system, and how well it supports the user in getting things done.

★ core
M

Modifiability

The cost — in time and money — of making a change to the system.

★ core
S

Security

The system's ability to resist unauthorized access while still serving legitimate users.

★ core
P

Performance

Timeliness — the system must respond to events within acceptable time/resource limits.

R

Reliability

The system's failure rate — how often, and how badly, things go wrong.

P

Portability

The effort needed to move the system to a different software or hardware environment.

★ core
T

Testability

How easily the software can be made to reveal its faults — needs controllable inputs and observable outputs.

★ core
A

Availability

The system's uptime — concerned with failures and how long they last.

I

Interoperability

The system's ability to work with other software or hardware systems.

§ 02 — THE ONE SHAPE THAT RUNS EVERYTHING

Anatomy of a quality attribute scenario

Every general and sample scenario in this chapter — availability, performance, security, whatever — is filled out using the exact same six blanks. Memorize the blanks, not the examples.

🎯
The 6-step mnemonic
"Sara Sings About Every Rainy Morning"
Source → Stimulus → Artifact → Environment → Response → Measure
01 · SOURCE
Who triggers it
User, attacker, another system, or something internal to the system itself.
02 · STIMULUS
What happens
The event that arrives — a request, a crash, an attack, a wish to change the UI.
03 · ENVIRONMENT
The situation it happens in
Normal operation, overload, startup, design-time, runtime, under attack…
04 · ARTIFACT
What part gets hit
The processor, a database, the UI, a code module — whatever is affected.
05 · RESPONSE
How the system reacts
Logs the error, disables the source, redeploys, denies access, restores data.
06 · MEASURE
How you grade success
Response time < 2s, 99.999% uptime, repair time, path coverage %.
Golden rule: a response is the fix, a response measure is the ruler you use on the fix. "Disable the failing server" is a response. "…within 3 seconds" is the response measure. Exam graders specifically dock points for merging the two.
§ 03 — AVAILABILITY

The uptime attribute

Availability

system's uptime

Concerned with system failure and the duration of that failure. A failure means the system stops delivering the service it was built for — availability tactics exist to detect that fast, contain it, and get back to normal.

Sample scenario — server goes unresponsive
Source Heartbeat monitor
Stimulus Server becomes unresponsive
Environment Normal operation
Artifact Process
Response Disable the source of failure, then repair it
Measure Repair time
Tactics — 4 branches
🚑
"Find it, Fix it, Bring it back, Stop it happening again"
Fault Detection → Recovery-Preparation & Repair → Recovery-Reintroduction → Prevention
Fault Detection
Ping/Echo · Heartbeat · Exception
Catch the fault fast — Heartbeat = a pulse-check the system sends out.
Recovery-Preparation & Repair
Voting · Active Redundancy · Passive Redundancy · Spare
Active redundancy = backup runs live, ready to take over instantly. Passive = backup wakes up only when primary dies.
Recovery-Reintroduction
Shadow State · Resynchronization · Rollback
Shadow = keep a parallel copy while updating. Resync = restarted part catches up to the group. Rollback = undo to a previous good state.
Prevention
Removal from Service · Transactions · Process Monitor
Long-term: pull a chronically failing component out of rotation before it causes damage.
Real-world lens: a primary CPU sends a heartbeat every second to a backup CPU running a different OS (avoids common-mode failure). If the backup misses the heartbeat, failover routing kicks in — target: switch traffic in under 3 seconds, detect the failure in under 2.
§ 04 — MODIFIABILITY

The "how much does change cost" attribute

Modifiability

cost of change

Not just "can it change" — how much it costs in time and money to add, remove, or tweak functionality, quality attributes, capacity, or technology.

Three sources, three scenarios
End-user "I want dark mode" → dev implements & redeploys → measured in cost, downtime, satisfaction
Developer Refactors code at design/build time → implement → test → integrate → measured in coding/testing effort
Sys. Admin Scales servers / upgrades DB at runtime or init → apply, redeploy, test stability
Sample: Source: Developer · Stimulus: wishes to change the UI · Artifact: Code · Environment: Design time · Response: change made & unit tested · Measure: within 3 hours.
Tactics — 3 branches
🧩
"Lock it down, Wall it off, Wait to decide"
Localize Changes → Prevent Ripple Effect → Defer Binding Time
Localize Changes
Semantic Coherence · Anticipate Expected Changes · Generalize Module · Limit Possible Options · Abstract Common Services
Keep the change contained to the module it belongs to.
Prevent Ripple Effect
Hide Information · Maintain Existing Interface · Restrict Communication Paths · Use an Intermediary
A UI redesign shouldn't touch how account data is stored.
Defer Binding Time
Runtime Registration · Configuration Files · Polymorphism · Component Replacement · Adherence to Protocols
Push the decision to runtime — e.g. theme read from a config file instead of hard-coded.
§ 05 — PERFORMANCE

The timeliness attribute

Performance

timeliness

Events occur, and the system must respond within acceptable time and resource limits — regardless of how busy it is.

Six measures
⏱️
"Little Dogs Try Jumping Many Doors"
Latency · Deadline · Throughput · Jitter · Miss Rate · Data Loss
Latency Delay before it starts — e.g. 2s before video plays
Deadline Must finish by — payment confirms within 5s
Throughput Work per second — 1,000 requests/min
Jitter Inconsistent response times (1s, then 4s)
Miss Rate % of deadlines missed — 2 of 100 frames = 2%
Data Loss Data that never arrives — 5 of 100 packets
Environment modes & tactics
Normal · Overload · Reduced Capacity · Emergency · Peak — the same stimulus can demand a very different response depending on which mode the system is in.
⚖️
"Dad Manages Allowance"
Resource Demand · Resource Management · Resource Arbitration
Resource Demand
Increase Computation Efficiency · Reduce Overhead · Manage Event Rate · Control Sampling Frequency
Resource Management
Introduce Concurrency · Maintain Multiple Copies · Increase Available Resources
Resource Arbitration
Scheduling Policy
Decide who gets the CPU first when everyone wants it.
§ 06 — SECURITY

The resist/detect/recover attribute

Security

resist unauthorized access

The ability to prevent or resist unauthorized access while still letting legitimate users in. An attack is an attempt to breach security.

Sample scenario — payroll tampering
Source Disgruntled employee, remote location
Stimulus Attempt to modify pay-rate data
Environment Normal operations
Artifact Data within the system
Response System maintains an audit trail
Measure Correct data restored within a day; source of tampering identified
Tactics — 3 branches
🛡️
"Guard the door, Watch the cameras, Clean up after"
Resist Attacks → Detect Attacks → Recover from an Attack
Resisting Attacks
Authenticate Users · Authorize Users · Maintain Data Confidentiality · Maintain Integrity · Limit Exposure · Limit Access
Detecting Attacks
Intrusion Detection
Recovering from an Attack
Restoration (see Availability) · Identification / Audit Trail
§ 07 — TESTABILITY

The "prove your bugs" attribute

Testability

ease of finding faults

How easily the software can be made to demonstrate its faults. Requires controlling inputs and observing outputs.

Sample scenario — unit test run
Source Unit tester
Stimulus Code unit completed
Environment Development
Artifact Code unit
Response Results captured
Measure 85% path coverage within 3 hours
Tactics — 2 branches
🔍
"Manage what goes in and out, Watch what's happening inside"
Manage I/O · Internal Monitoring
Manage Input/Output
Record/Playback · Separate Interface from Implementation · Specialized Access Routines/Interfaces
Internal Monitoring
Built-in Monitors
§ 08 — USABILITY

The "how easy is this to use" attribute

Usability

ease of use + support

How easy it is for the user to accomplish a task, and how much the system helps them do it.

Sample scenario — first app launch
Source User
Stimulus Downloads a new application
Environment Runtime
Artifact System
Response User uses the app productively
Measure Productive within 2 minutes
Tactics — 3 branches
🖱️
"Split the UI, Support the user, Let the system help too"
Separate UI · Support User Initiative · Support System Initiative
Separate User Interface
Keep UI code independent of system operations
A blog editor lets you restyle a page without touching backend code.
Support User Initiative
Cancel · Undo · Aggregate
Cart removal, "undo" button, weekly fitness summary.
Support System Initiative
User Model · System Model · Task Model
Streaming recommendations · inbox syncing important mail first · deadline reminders.
§ 09 — ONE-TACTIC-EACH CHEAT SHEET

If the exam only lets you write one tactic

Straight from the lecture's closing "extra question" — the minimum viable answer for each attribute.

Quality Attribute Fastest correct tactic to name
Security Resisting Attacks / Detecting Attacks / Authenticate Users
Testability Separate Interface from Implementation
Modifiability Localize Changes / Encapsulation / Hide Information
Performance Introduce Concurrency / Increase Available Resources
§ 10 — MIDTERM LAB

Where students actually lose points

Pulled straight from a graded midterm on this exact diagram (Server / Heartbeat / Unresponsive scenario). Same shape, different words each time — practice filling the six blanks fast.

Scenario given: Source = Heartbeat · Stimulus = Server Unresponsive · Artifact = Process Environment = Normal Operation · Response = Disable source of failure, repair source of failure Response Measure = Repair time Q1. Which quality attribute does this scenario illustrate? Q2. In your own words, describe the scenario and explain its sections. Q3. List 4 tactics related to the same quality attribute.
Model answer shape: (1) Availability. (2) "The heartbeat monitor detected the server had become unresponsive during normal operation. The system's response was to disable the failing source and attempt repair, and success is measured by how long that repair takes." (3) Any 4 from: Ping/Echo, Heartbeat, Voting, Active/Passive Redundancy, Spare, Shadow State, Resynchronization, Rollback, Removal from Service, Transactions, Process Monitor.
Mixing up Response and Measure

"Repair time" is the ruler, not the action. The action is "disable + repair the source." Keep them in separate sentences.

Naming tactics from the wrong branch

"Error detection" and "error recovery" are the right family — but be precise about which of the 4 branches (Detection / Prep+Repair / Reintroduction / Prevention) each tactic sits under.

Forgetting the Environment field

Students often skip stating "Normal Operation" explicitly — graders want all six anatomy parts named, not just the two headline ones.

Fast checklist before submitting

Did I name: attribute → source → stimulus → environment → artifact → response → measure, in that order, each in one clause?