5. Quality

5.1. Rationale

  • Jim McCall Software Quality Model (1977)

  • Barry W. Boehm Software Quality Model (1978)

  • FURPS/FURPS+ software quality model

    1. Geoff Dromey Software Quality Model

  • ISO/IEC 9126 Software Quality Model (1993)

  • ISO/IEC 25010 Software Quality Model (2011)

_images/qualitymodels-lifecycle-code.png

Software phases [trevinchow]

_images/qualitymodels-capers1996-a.png

Capers, Jones. Applied Software Measurement: Global Analysis of Productivity and Quality. 1996. [Capers1996]

_images/qualitymodels-ambler2009-a.jpg

Ambler, Scott W. Length of Feedback Cycle. 2009. [Ambler2009]

_images/qualitymodels-lifecycle-bug.jpg

Software Bug Life Cycle [softwaretestingvideos]

5.2. Jim McCall Software Quality Model (1977)

Jim McCall’s software quality model is also known as the GE model (General Electrics Model). It originally originated in the US Air Force, mainly for system developers and system development processes. McCall tries to bridge the gap between developers and end users through a series of software quality attribute indicators.

The McCall quality model uses 3 perspectives to define and identify the quality of software products:

  • Product revision (ability to change).

  • Product transition (adaptability to new environments).

  • Product operations (basic operational characteristics).

The McCall model details these three perspective definitions (product modification, product transfer, and product operation) through hierarchical elements, standards, and indicators.

11 Factors (To specify): Describe the external perspective of the software, that is, the perspective of the customer or user. 23 Criterias (To build): Describe the internal perspective of the software, that is, the developer’s perspective. Metrics (To control): Define metrics and methods In the figure below, there are 11 quality elements on the left and 23 quality standards on the right.

_images/qualitymodel-mccall1977-a.png

Product Quality as defined in Jim McCall Software Quality Model (1977) [gaochundong]

_images/qualitymodel-mccall1977-b.png

Product Quality as defined in Jim McCall Software Quality Model (1977) [gaochundong]

_images/qualitymodel-mccall1977-c.png

Product Quality as defined in Jim McCall Software Quality Model (1977) [gaochundong]

5.3. Barry W. Boehm Software Quality Model (1978)

The Boehm software quality model attempts to quantify software quality through a series of attribute indicators. Boehm’s quality model includes hardware attributes that are not in the McCall model. The Boehm model is also similar to McCall’s quality model, using a hierarchical quality model structure, including high-level attributes, middle-level attributes and original attributes.

High-level attributes mainly focus on 3 issues:

  • As-is utility

  • Maintainability

  • Portability

The middle attribute contains 7 quality elements:

  • Portability (General utility characteristics)

  • Reliability (As-is utility characteristics)

  • Efficiency (As-is utility characteristics)

  • Usability (As-is utility characteristics, Human Engineering)

  • Testability (Maintainability characteristics)

  • Understandability (Maintainability characteristics)

  • Flexibility (Maintainability characteristics, Modifiability)

It can be seen that the Boehm model is somewhat similar to the McCall model. The difference is that the McCall model mainly focuses on the accurate measurement of high-level attributes (“As-is utility”), while the Boehm model is based on a wider range of attributes, and maintains the maintainability. More attention.

_images/qualitymodel-boehm1978-a.png

Product Quality as defined in Barry W. Boehm Software Quality Model (1978) [gaochundong]

_images/qualitymodel-boehm1978-b.png

Product Quality as defined in Barry W. Boehm Software Quality Model (1978) [gaochundong]

5.4. FURPS/FURPS+ software quality model

The FURPS model was originally proposed by Robert Grady, and was later extended to FURPS+ by Rational Software.

The FURPS model includes:

  • Functionality

  • Usability

  • Reliability

  • Performance

  • Supportability

FURPS includes two different types: functional and non-functional.

5.5. R. Geoff Dromey Software Quality Model

The Dromey software quality model consists of 3 main elements.

Product properties that influence quality:

  1. High level quality attributes

  2. Means of linking the product properties with the quality attributes.

  3. Constructing the quality model includes the following 5 steps:

Chose a set of high-level quality attributes necessary for the evaluation.

  1. List components/modules in your system.

  2. Identify quality-carrying properties for the components/modules (qualities of the component that have the most

  3. impact on the product properties from the list above).

  4. Determine how each property effects the quality attributes.

  5. Evaluate the model and identify weaknesses.

_images/qualitymodel-dromey-a.png

Product Quality as defined in R. Geoff Dromey Software Quality Model [gaochundong]

5.6. ISO/IEC 9126 Software Quality Model (1993)

ISO/IEC 9126: Software Product Evaluation: Quality Characteristics and Guidelines for their Use-standard

The ISO/IEC 9126 model is based on the McCall and Boehm models, while adding functional requirements, and also includes identifying the internal and external quality attributes of software products.

6 quality characteristics of software:

  1. Functionality: When the software is used under specified conditions, the software product’s ability to provide functions that meet explicit and implicit needs;

  2. Reliability: The ability of a software product to maintain a specified performance level when used under specified conditions;

  3. Usability (Usability): When used under specified conditions, the software product’s ability to be understood, learned, used and attracted to users;

  4. Efficiency (Efficiency): Under specified conditions, relative to the amount of resources used, the software product’s ability to provide appropriate performance;

  5. Maintainability: The ability of a software product to be modified. Modifications may include corrections, improvements or the degree of adaptation of the software to changes in the environment, requirements and functional specifications;

  6. Portability: The ability of a software product to migrate from one environment to another.

_images/qualitymodel-iso9126-a.png

Product Quality as defined in ISO/IEC 9126 [gaochundong]

_images/qualitymodel-iso9126-b.png

Product Quality as defined in ISO/IEC 9126 [gaochundong]

_images/qualitymodel-iso9126-c.png

Product Quality as defined in ISO/IEC 9126 [gaochundong]

_images/qualitymodel-iso9126-d.png

Product Quality as defined in ISO/IEC 9126 [gaochundong]

5.7. ISO/IEC 9128

_images/qualitymodel-iso9128-a.png

Product Quality as defined in ISO/IEC 9128 [gaochundong]

5.8. ISO/IEC 25010 Software Quality Model (2011)

ISO/IEC 9126-1:2001 has been replaced and repealed by ISO/IEC 25010:2011.

The figure above illustrates the organization of the ISO/IEC 25000 SQuaRE series of standards, and its components are called divisions. The divisions within the SQuaRE series of international standards are:

ISO/IEC 2500n Quality Management Division. The standards that make up this division define all common models, terms, and definitions referenced by all other standards in the SQuaRE series of standards. Citation paths and advanced practical advice on the use of appropriate standards for specific applications are helpful to all types of users. This division also provides requirements and guidelines for supporting functions responsible for managing software product requirements and evaluation.

ISO/IEC 2501n Quality Model Division. The standards that make up this division give a detailed quality model that includes the characteristics of software internal quality, software external quality, and software usage quality. In addition, the internal and external software quality characteristics are broken down into sub-characteristics, and practical guidelines for using the quality model are provided.

ISO/IEC 2502n Quality Measurement Division. The standards that make up this division include software product quality measurement reference models, mathematical definitions of quality measurement and practical guidelines for its application. The measurement applied to the internal quality of the software, the external quality of the software and the quality of use is given. The quality measurement elements that constitute the basis of subsequent measurement are defined and given.

ISO/IEC 2503n Quality Requirements Division. The standards that make up this division help users specify quality requirements. These quality requirements can be used in the process of extracting the quality requirements of the software product to be developed or used as input to the evaluation process. The requirements definition process can be mapped to the technical process defined in ISO/IEC 15288.

ISO/IEC 2504n Quality Evaluation Division. The standards that make up this division give the requirements, recommendations and guidelines for software product evaluation whether performed by the evaluator, the demander or the developer. It also provides measurement documentation support as an evaluation module. ISO/IEC 25050 to ISO/IEC 25099 are reserved for SQuaRE expansion of international standards and/or technical reports.

The software quality model contains 8 features and is further decomposed into multiple sub-features that can be measured internally and externally.

ISO/IEC 25010 adds new software usage quality, which contains 5 characteristics and is further divided into multiple sub-characteristics that can be measured.

Use quality: In a specific use environment, the software product’s ability to enable specific users to achieve specific goals of effectiveness, productivity, safety, and satisfaction.

_images/qualitymodel-iso25010-a.jpeg

Product Quality as defined in ISO/IEC 25010 [ISO25010a]

_images/qualitymodel-iso25010-b.png

Product Quality as defined in ISO/IEC 25010 [ISO25010b]

_images/qualitymodel-iso25010-c.png

Product Quality as defined in ISO/IEC 25010 [ISO25010c]

_images/qualitymodel-iso25010-d.png

Product Quality as defined in ISO/IEC 25010 [gaochundong]

_images/qualitymodel-iso25010-e.png

Product Quality as defined in ISO/IEC 25010 [gaochundong]

_images/qualitymodel-iso25010-f.png

Product Quality as defined in ISO/IEC 25010 [gaochundong]

_images/qualitymodel-iso25010-g.png

Product Quality as defined in ISO/IEC 25010 [gaochundong]

_images/qualitymodel-iso25010-h.png

Product Quality as defined in ISO/IEC 25010 [gaochundong]

_images/qualitymodel-iso25010-i.png

Product Quality as defined in ISO/IEC 25010 [gaochundong]

5.9. Other Standards

Space:

Automotive: