ISO 9126
Encyclopedia
ISO/IEC 9126 Software engineering — Product quality is an international standard
for the evaluation
of software quality
. The fundamental objective of this 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:
classifies software quality
in a structured set of characteristics and sub-characteristics as follows:
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 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.
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:
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.
International standard
International standards are standards developed by international standards organizations. International standards are available for consideration and use, worldwide...
for the evaluation
Evaluation
Evaluation is systematic determination of merit, worth, and significance of something or someone using criteria against a set of standards.Evaluation often is used to characterize and appraise subjects of interest in a wide range of human enterprises, including the arts, criminal justice,...
of software quality
Software quality
In the context of software engineering, software quality refers to two related but distinct notions that exist wherever quality is defined in a business context:...
. The fundamental objective of this 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.
Quality Model
The quality model presented in the first part of the standard, ISO/IEC 9126-1,classifies software quality
Software quality
In the context of software engineering, software quality refers to two related but distinct notions that exist wherever quality is defined in a business context:...
in a structured set of characteristics and sub-characteristics as follows:
- 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.
- Suitability
- Accuracy
- InteroperabilityInteroperabilityInteroperability is a property referring to the ability of diverse systems and organizations to work together . The term is often used in a technical systems engineering sense, or alternatively in a broad sense, taking into account social, political, and organizational factors that impact system to...
- SecurityComputer securityComputer security is a branch of computer technology known as information security as applied to computers and networks. The objective of computer security includes protection of information and property from theft, corruption, or natural disaster, while allowing the information and property to...
- Functionality Compliance
- 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.
- Maturity
- Fault Tolerance
- Recoverability
- Reliability Compliance
- UsabilityUsabilityUsability is the ease of use and learnability of a human-made object. The object of use can be a software application, website, book, tool, machine, process, or anything a human interacts with. A usability study may be conducted as a primary job function by a usability analyst or as a secondary job...
- 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.- Understandability
- LearnabilityLearnability-Software testing:In software testing learnability, according to ISO/IEC 9126, is the capability of a software product to enable the user to learn how to use it...
- OperabilityOperabilityOperability is the ability to keep an equipment, a system or a whole industrial installation in a safe and reliable functioning condition, according to pre-defined operational requirements....
- Attractiveness
- Usability Compliance
- EfficiencyAlgorithmic efficiencyIn computer science, efficiency is used to describe properties of an algorithm relating to how much of various types of resources it consumes. Algorithmic efficiency can be thought of as analogous to engineering productivity for a repeating or continuous process, where the goal is to reduce...
- 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 Utilisation
- Efficiency Compliance
- MaintainabilityMaintainabilityIn engineering, maintainability is the ease with which a product can be maintained in order to:* isolate defects or their cause* correct defects or their cause* meet new requirements* make future maintenance easier, or* cope with a changed environment...
- A set of attributes that bear on the effort needed to make specified modifications.- Analyzability
- Changeability
- Stability
- TestabilityTestabilityTestability, a property applying to an empirical hypothesis, involves two components: the logical property that is variously described as contingency, defeasibility, or falsifiability, which means that counterexamples to the hypothesis are logically possible, and the practical feasibility of...
- Maintainability Compliance
- PortabilitySoftware portabilityPortability in high-level computer programming is the usability of the same software in different environments. The prerequirement for portability is the generalized abstraction between the application logic and system interfaces...
- A set of attributes that bear on the ability of software to be transferred from one environment to another.- Adaptability
- Installability
- Co-Existence
- Replaceability
- 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 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
Internal metrics are those which do not rely on software execution (static measure)Quality in Use Metrics
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.
History
ISO/IEC 9126 was issued in 1991; a revision was issued in 2001 in four parts (ISO/IEC 9126-1 to 9126-4).Developments
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 of 2011. ISO 25010 has eight product quality characteristics (in contrast to ISO 9126's six), and 39 subcharacteristics.- 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 authorised), Integrity (protection from unauthorised modification), Non-repudiation (actions can be proven to have taken place), Accountibility (actions can be traces to who did them), and Authenticity (identify 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.
See also
- ISO 9000ISO 9000The ISO 9000 family of standards relates to quality management systems and is designed to help organizations ensure they meet the needs of customers and other stakeholders . The standards are published by ISO, the International Organization for Standardization, and available through National...
- Verification and ValidationVerification and ValidationIn software project management, software testing, and software engineering, verification and validation is the process of checking that a software system meets specifications and that it fulfills its intended purpose...
- Non-functional requirementsNon-functional requirementsIn systems engineering and requirements engineering, a non-functional requirement is a requirement that specifies criteria that can be used to judge the operation of a system, rather than specific behaviors. This should be contrasted with functional requirements that define specific behavior or...