Software Quality: Definitions and Strategic Issues
In general, software quality is crucial in software engineering. Read this article and explore the various definitions of quality and the quality models. Notice the priority of quality factors and how software quality can be measured.
2. Building quality into software products
2.2. Quality models
According to Wallmüller "one of the oldest and most frequently applied [software quality] models is that of McCall et al. (1979). Other models such as that of Murine & Carpenter (1984) or that of NEC (Azuma 1987) are derived from it. McCall's model is used in the United States for very large projects in the military, space and public domain. It was developed in 1976-7 by the US Air Force Electronic System Division (ESD), the Rome Air Development Centre (RADC) and General Electric (GE) with the aim of improving the quality of software products. One explicit aim was to make quality measurable.
McCall started with a volume of 55 quality characteristics which have an important influence on quality, and called them "factors". For reasons of simplicity, McCall then reduced the number of characteristics to the following:
- efficiency
- integrity
- reliability
- usability
- accuracy
- maintainability
- testability
- flexibility
- interface
- facility
- re-usability
- transferability.
A second set of quality factors was defined by Boëhm (1978). Authors, too, have added to McCall's original list to reflect recent thinking. Ghezzi et al. (1991) list sixteen factors. A full list of both models is set out in table 2.1
Much has happened on the technology front since 1977 and many authors have redefined some of the eleven factors while others have added even more to better reflect recent advances in the technology. One commercial model taking this approach is the SPARDAT quality model from Germany which classifies three significant characteristics - applicability, maintainability and adaptability. These characteristics are further subdivided giving twenty quality factors in all. This model was created for software development in the banking environment.
Because of the format used to describe them, quality factors are often referred to as the ...ility factors.
McCall et al | Boëhm |
---|---|
(1976-77) | (1978) |
efficiency | usability |
integrity | clarity |
reliability | efficiency |
usability | reliability |
accuracy | modifiability |
maintainability | re-usability |
testability | modularity |
flexibility | documentation |
interface facility | resilience |
re-usability | resilience |
transferability | maintainability |
portability | |
interoperability | |
understandability | |
integrity | |
validity | |
flexibility | |
generality economy |
Table 2.1 - Software quality models
An NCC publication (no reference cited) sub-divides the quality factors into those that relate to external quality and those that relate to internal quality. It explains that "external quality is the quality of the finished product, the quality as it appears to the external world, as it comes off the end of the assembly line. Internal quality is the quality of the product as it is being constructed, while it is on the assembly line". We can extend this view by considering external quality as those factors that are clearly visible to end users while internal quality would be concerned with internal technical issues of the software. This is in keeping with the view of Ghezzi et al. (1991) who state that "In general, users of the software only care about the external qualities, but it is the internal qualities - which deal largely with the structure of the software - that help developers achieve external qualities". In the next section, as each quality factor is explained you will see an interplay between factors. Table 2.2 below illustrates how the external and internal sub-division might be made.
External quality | integrity |
---|---|
reliability | |
usability | |
accuracy | |
Internal quality | efficiency |
maintainability | |
testability | |
flexibility | |
interface facility | |
re-usability | |
transferability |
Table 2.2 - Categorised quality factors