ISO/IEC 9126 Software engineering — Product quality was an international standard for the evaluation of software quality. It has been replaced by ISO/IEC 25010:2011.1 The fundamental objective of the ISO/IEC 9126 standard is to address some of the well known human biases that can adversely affect the delivery and perception of a software development project. These biases include changing priorities after the start of a project or not having any clear definitions of "success." By clarifying, then agreeing on the project priorities and subsequently converting abstract priorities (compliance) to measurable values (output data can be validated against schema X with zero intervention), ISO/IEC 9126 tries to develop a common understanding of the project's objectives and goals.
The standard is divided into four parts:
- quality model
- external metrics
- internal metrics
- quality in use metrics.
- Functionality - A set of attributes that bear on the existence of a set of functions and their specified properties. The functions are those that satisfy stated or implied needs.
- Reliability - A set of attributes that bear on the capability of software to maintain its level of performance under stated conditions for a stated period of time.
- Fault Tolerance
- Reliability Compliance
- Usability - A set of attributes that bear on the effort needed for use, and on the individual assessment of such use, by a stated or implied set of users.
- Efficiency - A set of attributes that bear on the relationship between the level of performance of the software and the amount of resources used, under stated conditions.
- Time Behaviour
- Resource Utilization
- Efficiency Compliance
- Maintainability - A set of attributes that bear on the effort needed to make specified modifications.
- Maintainability Compliance
- Portability - A set of attributes that bear on the ability of software to be transferred from one environment to another.
- Portability Compliance
Each quality sub-characteristic (e.g. adaptability) is further divided into attributes. An attribute is an entity which can be verified or measured in the software product. Attributes are not defined in the standard, as they vary between different software products.
Software product is defined in a broad sense: it encompasses executables, source code, architecture descriptions, and so on. As a result, the notion of user extends to operators as well as to programmers, which are users of components such as software libraries.
The standard provides a framework for organizations to define a quality model for a software product. On doing so, however, it leaves up to each organization the task of specifying precisely its own model. This may be done, for example, by specifying target values for quality metrics which evaluates the degree of presence of quality attributes.
Internal metrics are those which do not rely on software execution (static measure)
External metrics are applicable to running software.
Quality in use metrics are only available when the final product is used in real conditions.
Ideally, the internal quality determines the external quality and external quality determines quality in use.
This standard stems from the GE model for describing software quality, presented in 1977 by McCall et al., which is organized around three types of Quality Characteristics:
- Factors (To specify): They describe the external view of the software, as viewed by the users.
- Criteria (To build): They describe the internal view of the software, as seen by the developer.
- Metrics (To control): They are defined and used to provide a scale and method for measurement.
ISO/IEC 9126 distinguishes between a defect and a nonconformity, a defect being The nonfulfilment of intended usage requirements, whereas a nonconformity is The nonfulfilment of specified requirements. A similar distinction is made between validation and verification, known as V&V in the testing trade.
ISO/IEC 9126 was issued in 1991; a revision was issued in 2001 in four parts (ISO/IEC 9126-1 to 9126-4).
ISO/IEC then started work on SQuaRE (Software product Quality Requirements and Evaluation), a more extensive series of standards to replace ISO/IEC 9126, with numbers of the form ISO/IEC 250mn. For instance, ISO/IEC 25000 was issued in 2005, and ISO/IEC 25010, which supersedes ISO/IEC 9126-1, was issued in March 2011. ISO 25010 has eight product quality characteristics (in contrast to ISO 9126's six), and 31 subcharacteristics.3
- Functionality is renamed Functional suitability. Functional completeness is added as a subcharacteristic, and interoperability and security are moved elsewhere. Accuracy is renamed functional correctness, and Suitability is renamed Functional appropriateness.
- Efficiency is renamed Performance efficiency. Capacity is added as a subcharactersitic.
- Compatibility is a new characteristic, with Co-existence moved from Portability and Interoperability moved from Functionality.
- Usability has new subcharacteristics of User error protection and Accessibility (use by people with a wide range of characteristics). Understandability is renamed Appropriateness recognizability, and Attractiveness is renamed User interface aesthetics.
- Reliability has a new subcharacteristic of Availability (when required for use).
- Security is a new characteristic with subcharacteristics of Confidentiality (data accessible only by those authorized), Integrity (protection from unauthorized modification), Non-repudiation (actions can be proven to have taken place), Accountibility (actions can be traced to who did them), and Authenticity (identity can be proved to be the one claimed).
- Maintainability has new subcharacteristics of Modularity (changed in one component has a minimal impact on others) and Reusability, and Changeability and Stability are rolled up into Modifiability.
- Portability has Co-existence moved elsewhere.
- Systems and software engineering -- Systems and software Quality Requirements and Evaluation (SQuaRE) -- System and software quality models
- ISO/IEC 9126-1:2001 Software engineering — Product quality — Part 1: Quality model
- ISO/IEC 25010:2011 : Systems and software engineering -- Systems and software Quality Requirements and Evaluation (SQuaRE) -- System and software quality models
- Scalet et al., 2000: ISO/IEC 9126 and 14598 integration aspects: A Brazilian viewpoint. The Second World Congress on Software Quality, Yokohama, Japan, 2000.