Listing Vault SE322 · chapter 03 · Quality Attributes

Chapter 03 — Quality Attributes

Quality scenarios, the seven design decision categories, and the tactic catalogues for performance, availability, security, modifiability, testability, usability and interoperability.

03chapter
lists
total items
03

Quality Attributes

18 lists

Six-Part Quality Scenario 6

  1. Source — who or what triggers it
  2. Stimulus — what arrives
  3. Environment — the system state at the time (normal, peak, degraded)
  4. Artifact — the part of the system that is hit
  5. Response — what the system does
  6. Response measure — how the response is measured

General vs Concrete Scenario 2

  1. General — reusable, system-independent template
  2. Concrete — instantiated for this system with real numbers

Seven Categories of Design Decision 7

  1. Allocation of responsibilities — where behavior and knowledge live
  2. Coordination model — how elements interact
  3. Data model — what is stored, where, partitioning, replication and consistency
  4. Management of resources — threads, memory, connections, bandwidth
  5. Mapping among architectural elements — what scales, fails or releases independently
  6. Binding time — compile time, build, startup or run time
  7. Choice of technology — flexibility traded against complexity and cost

Performance — Concerns 5

  1. Latency
  2. Throughput
  3. Capacity
  4. Deadlines
  5. Resource use

Performance — Tactics 2 groups

Control demand

  • Sampling / manage sampling rate
  • Admission control and rate limiting
  • Prioritize events
  • Reduce overhead
  • Bound execution times

Manage resources

  • Increase resources
  • Introduce concurrency
  • Replicate computation or data
  • Bound queue sizes
  • Schedule resources

Performance — Measurement Rules 3

  1. Measure percentile latency (p95, p99), not averages
  2. Measure under representative load, not a quiet machine
  3. Keep headroom — latency rises sharply as utilization nears capacity

Availability — Definition & Arithmetic 3

  1. Readiness for correct service despite faults
  2. Availability = MTBF / (MTBF + MTTR)
  3. 99.9% ≈ 8.8 hours downtime/year · 99.99% ≈ 53 minutes/year

Availability — Tactics 4 groups

Detect faults

  • Ping / echo
  • Heartbeat
  • Exceptions
  • Voting
  • Monitor
  • Timestamp

Recover — preparation & repair

  • Active redundancy
  • Passive redundancy
  • Spare
  • Rollback
  • Retry
  • Exception handling

Recover — reintroduction

  • Shadow operation
  • State resynchronization
  • Escalating restart
  • Non-stop forwarding

Prevent faults

  • Removal from service
  • Transactions
  • Process monitor
  • Predictive model

Fault vs Failure 2

  1. Fault — something has gone wrong internally
  2. Failure — the fault has reached the user; masking it fast enough is a valid strategy

Security — Properties Protected 6

  1. Confidentiality
  2. Integrity
  3. Availability
  4. Authenticity
  5. Accountability
  6. Non-repudiation

Security — Tactic Groups 4

  1. Detect attacks
  2. Resist attacks
  3. React to attacks
  4. Recover from attacks

Security — Core Controls 5

  1. Authenticate subjects
  2. Authorize actions
  3. Limit exposure and apply least privilege
  4. Encrypt data
  5. Audit activity

Threat Modeling Links 4

  1. Assets
  2. Threats
  3. Vulnerabilities
  4. Mitigations

Modifiability — Tactics 4

  1. Reduce the size of a module
  2. Increase cohesion
  3. Reduce coupling (encapsulate, use an intermediary, abstract common services)
  4. Defer binding time

Testability — Requirements 4

  1. Controllability
  2. Observability
  3. Isolation
  4. Repeatability

Usability — Tactics 2 groups

Support user initiative

  • Cancel
  • Undo
  • Pause / resume
  • Aggregate

Support system initiative

  • Maintain a model of the user
  • Maintain a model of the task
  • Maintain a model of the system

Interoperability — Requires 4

  1. Shared syntax
  2. Shared semantics
  3. Shared protocols
  4. Shared identity assumptions

Interoperability — Tactics 3

  1. Discover service
  2. Orchestrate
  3. Tailor interface