Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
ISO/IEC 25021 is a foundational standard within the SQuaRE (Systems and Software Quality Requirements and Evaluation) series, specifically belonging to the ISO/IEC 2502n Quality Measurement Division. Its core purpose is to define the concept of Quality Measure Elements (QMEs) and provide a rigorous framework for specifying them. A QME is defined as a measure expressed in terms of a property of a target entity and the measurement method used to quantify it, optionally including a mathematical transformation. In essence, QMEs are the atomic building blocks from which all higher-level quality measures (QMs) are constructed.
The standard replaces the earlier ISO/IEC TR 25021:2007 technical report and serves as the critical link between the legacy ISO/IEC 9126 series and the modern SQuaRE framework. By standardizing QMEs, ISO/IEC 25021 ensures that quality measurements are consistent, repeatable, and comparable across different projects, organizations, and domains. This is particularly valuable in regulated industries such as medical devices, automotive safety (ISO 26262), and avionics (DO-178C), where traceable and defensible quality metrics are mandatory.
The standard defines a comprehensive table format for specifying QMEs, organized into 14 information items grouped into four logical categories. This structured approach ensures that every QME is fully documented and unambiguous.
The first group covers QME identification: a unique name (typically beginning with “Number of…”), the target entity (the object being measured, such as source code, a design document, or system behavior), and the objectives and property to quantify. For example, the QME “Number of faults (of code)” targets program source code and quantifies the property “fault.”
The second and most substantial group defines how the QME is measured. It includes the measurement method (how data is collected and transformed), a list of sub-properties if applicable, input sources, the unit of measurement, numerical assignment rules, and the scale type (nominal, ordinal, interval, or ratio). The standard mandates that numerical rules be described from both a practitioner’s perspective (textual) and a theoretical perspective (mathematical), ensuring both practical usability and formal rigor.
| Information Item | Description | Example (Fault Count) |
|---|---|---|
| QME Name | Unique identifier for the QME | Number of faults (of code) |
| Target Entity | Object being characterized | Program source code |
| Property to Quantify | Specific attribute being measured | Fault — an incorrect step, process, or data definition |
| Measurement Method | How data is collected and valued | Code review, difference analysis of revised source |
| Unit of Measurement | Scale unit for the result | Lines of code |
| Scale Type | Mathematical scale category | Ratio |
| Life Cycle Process | When measurement applies | Software Construction, Implementation |
The final group addresses practical management: the context of QME use (which quality characteristics it supports), the appropriate software life cycle processes, and any measurement constraints. For instance, the number of code faults may vary significantly depending on whether code is newly developed or reused, and the investigation method (review vs. inspection vs. automated analysis) will yield different results. Documenting these constraints is essential for proper interpretation.
For engineering teams implementing ISO/IEC 25021, several practical insights emerge from the standard’s framework.
The same QME can be used by multiple quality measures across different quality characteristics. For example, “Number of faults” serves as a component in reliability measures (fault density), maturity measures (fault detection rate), and maintenance measures (fault removal rate). This reuse ensures consistency: when a single QME definition is standardized across an organization, all derived quality measures inherit that consistency. A practical recommendation is to establish an organizational QME repository, similar to a code library, where approved and validated QMEs are cataloged for reuse across projects.
Each QME should be explicitly mapped to the software life cycle process(es) where actual measurement occurs. This prevents the common pitfall of specifying metrics that cannot be collected at the intended phase. For instance, the QME “Number of faults in code” is actually measurable during construction (coding and unit testing) via code review or unit testing, but can only be estimated during requirements analysis. This lifecycle-awareness is critical for planning measurement programs and resource allocation.
The standard categorizes scale types into nominal, ordinal, interval, and ratio. This is not a theoretical nicety but has practical consequences: ratio scales (e.g., lines of code, defect counts) permit multiplication and division, enabling meaningful derived measures like density or rate. Ordinal scales (e.g., severity ratings: critical, major, minor) only permit ranking and comparison. Engineers must select the appropriate scale type for each QME and respect its mathematical properties when computing derived quality measures. A common mistake is treating ordinal satisfaction ratings (e.g., Likert scales) as interval data and computing means, which can lead to misleading conclusions.