Quality Attributes (Non-Functional Requirements)
Quality attributes define how well a system performs its intended functions. Unlike functional requirements (what the system does), quality attributes specify non-functional concerns: how fast, how reliable, how maintainable, how testable, and how cost-effective.
This section organizes quality attributes using the ISO/IEC 25010:2023 standard, the international framework for software product quality. You'll learn to define, measure, and architect for eight core quality attributes that shape every architectural decision.
What you'll find here
ISO/IEC 25010 Conceptual Mapping — Understand the international standard and map it to practical architecture concerns.
Performance & Scalability — Latency budgets, load testing, profiling, caching, and batching to ship fast systems.
Availability & Reliability — Redundancy, failover, graceful degradation, disaster recovery, and RTO/RPO planning.
Maintainability & Modifiability — Modularity, contracts, code health, and refactoring strategies.
Testability — Test isolation, determinism, data management, and contract-driven testing.
Observability — Cross-reference to Observability & Operations section (Section 12).
Usability & Accessibility (A11y) — Design for diverse users, inclusive UX, and compliance.
Interoperability & Portability — Cross-platform, API standards, and vendor neutrality.
Cost Efficiency (FinOps) — Cloud economics, resource optimization, and sustainable infrastructure.
Why quality attributes matter
Quality attributes directly impact:
- User satisfaction: Fast, available, intuitive systems retain users.
- Business value: Reliability and maintainability reduce operational costs; performance enables new features.
- Team velocity: Testability and modularity accelerate development and reduce bugs.
- Risk management: Disaster recovery, resilience, and monitoring mitigate failures.
- Competitive advantage: Cost efficiency and performance differentiate products.
How to use this section
- Understand the standard — Start with ISO/IEC 25010 Conceptual Mapping to align terminology across teams.
- Define your targets — For each quality attribute, set measurable goals (e.g., P99 latency < 200ms, 99.95% availability, MTTR < 15 min).
- Architect for attributes — Each subsection gives patterns and trade-offs (e.g., replication vs. partitioning for availability; caching vs. cost for performance).
- Measure and validate — Use observability and testing strategies from Section 12 (Observability) and Testing Strategy to instrument and verify.
- Iterate — Quality attributes are not one-time decisions; revisit them as scale, requirements, and constraints evolve.
Quick reference: Quality attributes at a glance
📄️ ISO/IEC 25010 Conceptual Mapping
Understand the international standard for software product quality and map it to practical architectural decisions.
🗃️ Performance & Scalability
4 items
🗃️ Availability & Reliability
3 items
🗃️ Maintainability & Modifiability
3 items
🗃️ Testability
3 items
📄️ Observability (Cross-Reference)
Observability and Operations is covered in Section 12. This brief mentions key concepts and links.
📄️ Usability and Accessibility (A11y)
Design inclusive systems that work for all users, including those with disabilities.
📄️ Interoperability and Portability
Design systems that work across platforms and integrate with other systems.
📄️ Cost Efficiency and FinOps
Optimize cloud spend; balance performance with cost through architecture decisions.