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:

  1. efficiency 
  2. integrity 
  3. reliability 
  4. usability 
  5. accuracy 
  6. maintainability 
  7. testability 
  8. flexibility 
  9. interface 
  10. facility 
  11. re-usability 
  12. 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