ποΈ What is a Quality Model?
A Quality Model is a structured framework that breaks down the abstract idea of "good software" into measurable characteristics. It provides a common language π£οΈ for developers, testers, and stakeholders.
π McCallβs Quality Model (1977)
One of the pioneers, McCall focused on three "uses" or perspectives of a product:
Product Revision π§ (The Ability to Change): Maintainability, Flexibility, Testability.
Product Transition βοΈ (Adaptability): Portability, Reusability, Interoperability.
Product Operation βοΈ (Basic Functionality): Correctness, Reliability, Efficiency, Integrity, Usability.
ποΈ Boehmβs Quality Model (1978)
Barry Boehm expanded on McCall by adding a hierarchical structure that links high-level goals to measurable "primitive" parts.
High-level π: Utility, Maintainability, Portability.
Intermediate ποΈ: Reliability, Efficiency, Human Engineering, Testability, Understandability, Modifiability.
Primitive π (The measurable bits): e.g., Device independence, Accuracy, Completeness.
πΉ FURPS / FURPS+ Model
Developed at HP, this model is the "gold standard" for separating Functional from Non-Functional requirements.
Functional: Features, capabilities, security. β
Usability: Human factors, aesthetics, documentation. π¨
Reliability: Frequency of failure, recoverability. β
Performance: Speed, efficiency, throughput. β‘
Supportability: Testability, extensibility, serviceability. π οΈ
The "+" β: Includes extra constraints like Design, Implementation, Interface, and Physical requirements.
π ISO/IEC 25010 (Modern Standard)
The current global heavyweight (replacing ISO 9126). It defines 8 characteristics:
Functional Suitability: Does it do the job? π―
Performance Efficiency: Is it fast and lean? πββοΈ
Compatibility: Does it play well with others? π€
Usability: Is it easy to learn? πββοΈ
Reliability: Is it stable under pressure? π
Security: Is the data safe? π‘οΈ
Maintainability: Is it easy to fix/improve? π§
Portability: Can it move environments easily? π±
π Comparison of Quality Models
Model | Primary Focus π― | Best Used For... π οΈ |
McCall | Internal vs. External quality. | Legacy systems & general assessment. |
Boehm | Detailed technical hierarchies. | Hardware/Software interaction. |
FURPS+ | Requirements engineering. | Defining Non-Functional Requirements (NFRs). |
ISO 25010 | Comprehensive standardization. | Professional & global industry standards. |
π‘ The "So What?" (Why Use Them?)
Without a model, "Quality" is just a vibe. With a model, you get metrics. π
The Vibe: "The app should be fast." π΄
The Metric (ISO 25010): "The system must respond to search queries within 2 seconds for up to 1,000 concurrent users." π