Quality Attributes
Concept of non-functional quality properties of systems that shape architectural decisions and evaluation criteria.
Classification
- ComplexityMedium
- Impact areaTechnical
- Decision typeArchitectural
- Organizational maturityIntermediate
Technical context
Principles & goals
Use cases & scenarios
Compromises
- Over-optimizing one attribute weakens others (e.g. performance vs maintainability).
- Ignored quality attributes can lead to outages or security gaps.
- Unclear criteria lead to inconsistent implementations.
- Define metrics early and measure continuously.
- Document trade-offs and make decisions traceable.
- Embed quality goals into acceptance criteria and SLAs.
I/O & resources
- Business goals and SLAs
- Technical architecture overviews and component lists
- Stakeholder requirements and operational conditions
- Prioritized quality attributes with metrics
- Test and monitoring plans
- Architectural decisions and risk documentation
Description
Quality attributes describe non-functional requirements such as performance, security, or maintainability and provide qualitative criteria for architectural decisions. They enable prioritization and trade-off analysis by defining measurable expectations and target states. In design, they drive trade-offs and inform testing and monitoring objectives.
✔Benefits
- Increased predictability of system behavior under load.
- Better basis for architectural trade-offs.
- Clear criteria for tests, SLAs, and operations.
✖Limitations
- Difficulty in precisely measuring some attributes.
- Context-dependence can hinder generalization.
- Priorities may change with market or user requirements.
Trade-offs
Metrics
- Response time (P95)
Time within which 95% of requests are served; important for performance SLAs.
- Availability (uptime)
Percentage of uptime within a defined interval.
- Mean time to recovery (MTTR)
Average time to recover after an outage.
Examples & implementations
Checkout latency in online shop
Requirement: maximum 200 ms response time under peak load to avoid checkout abandonment.
Banking system availability
Requirement: 99.99% availability and defined recovery times for critical transactions.
IoT device battery life
Requirement: energy-optimized communication to ensure a minimum one-year operational lifetime.
Implementation steps
Conduct stakeholder workshop to elicit quality attributes.
Formulate scenarios and derive metrics.
Ensure integration into design, testing, and monitoring processes.
⚠️ Technical debt & bottlenecks
Technical debt
- Performance workarounds create long-term maintenance burden.
- Undocumented dependencies increase fragility.
- Unclear quality goals lead to inconsistent implementations.
Known bottlenecks
Misuse examples
- Implementing performance requirement without defined load profiles.
- Weakening security measures to temporarily increase usability.
- Prioritizing all quality attributes equally without business context.
Typical traps
- Choosing metrics that are easy to measure but irrelevant.
- Not validating assumptions regularly.
- Lack of linkage between architecture and operations teams.
Required skills
Architectural drivers
Constraints
- • Budget and time constraints for implementation
- • Regulatory requirements (e.g. data protection)
- • Existing technical platforms and integrations