—Employ quality metrics to support developer and user needs throughout the lifecycle.
McCall’s quality model was published in 1977 (see A Framework for the Measurement of Software Quality). It’s significant because its one of the first models to capture user experience and developer perspective.
Another document FACTORS IN SOFTWARE QUALITY complements what’s in the framework with more detail.
McCall’s Software Quality Model provides a nice high-level introduction into the relationships between model components. It doesn’t touch on the quantitative aspects of the model. The model provides a framework for measuring software quality that affect user and development facing properties of the software.
The model is built upon three product pillars:
Each pillar ties represents an activity occuring on a software product throughout its lifetime. These pillers are use to create a collection of quality factors aligned those activities. A quality factor captures behavioral and nonbehavioral requirements.
Operation provides a behavioural representation of the product. Behavior includes quality factors like correctness and efficiency.
Transition and revision provide a non-behavioral representation of the product. Transition includes quality factors like maintainability and flexibility. Revision includes quality factors like portability.
Quality factors are positively influenced by one or more quality criteria.
A quality criteria is software-directed metric (actual, quantifiable measurements) that relate to the factors.
For example, a quality factor for simplicity impacts reliability. Reliability is measured in terms of the extent a program can be expected to perform its intended function with required precision.
The same criteria can impact a number of factors. For example, portable code may degrade efficiency.
Some factors positively or negatively impact other factors. For example, correctness positively affects reliability but generality might negatively impact efficency.
A key point in McCall’s paper is that the metrics for quality criteria are measured throughout the development of the product’s software. This is in contrast to testing which only identifies the frequency of error.
Furthermore, the quality measure process must be applied to the requirements and design phases of the product. Quality metrics are predictive in nature and oriented toward the development phases rather than toward the finished system. They are a tool employed to reduce the cost of correction before the final product is delivered.
Keys to measurement success:
Measures are then a rating for a quality factor. This rating must include a function mapping each quality criteria into the quality factor.