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.1. Quality defined

Dictionary definitions of quality are generally focused on excellence and that should be the IS professional's focus too. Some technical authors like to describe software quality in terms of "Fitness for purpose" but more recent commercial thinking would not fully support this description. 

Quality is defined by International organisations as follows: 

"Quality comprises all characteristics and significant features of a product or an activity which relate to the satisfying of given requirements".

German Industry Standard DIN 55350 Part 11

"Quality is the totality of features and characteristics of a product or a service that bears on its ability to satisfy the given needs". 

ANSI Standard (ANSI/ASQC A3/1978)

  1. The totality of features and characteristics of a software product that bear on its ability to satisfy given needs: for example, conform to specifications. 
  2. The degree to which software possesses a desired combination of attributes. 
  3. The degree to which a customer or user perceives that software meets his or her composite expectations. 
  4. The composite characteristics of software that determine the degree to which the software in use will meet the expectations of the customer. 

IEEE Standard (IEEE Std 729-1983)

These standards are a long time in existence and their relevance to the late '90s might be a little too broad. The IEEE standard specifically relates to software, so it's a good candidate for closer analysis. This standard defines quality in terms of features and characteristics. But what are these items and who defines them? It's concerned with the presence of desired combinations of [presumably, quality] attributes. So a product with say two of the desired combinations is the same quality as a product with four of the combinations? It expresses quality in terms of customer expectation. If a customer's expectation is nil doesn't that mean that a product with nil characteristics is a quality product? Finally it is based on user perception. So, if an uninformed user or customer perceives a motor car that rusts, falls apart, breaks down, regularly fails to start, burns excessive oil etc, as a quality car - is it? Obviously not. So this type of definition doesn't help. Ince describes the modern view of quality:

"A high quality product is one which has associated with it a number of quality factors. These could be described in the requirements specification; they could be cultured, in that they are normally associated with the artefact through familiarity of use and through the shared experience of users; or they could be quality factors which the developer regards as important but are not considered by the customer and hence not included in the requirements specification". 

For the purpose of this paper the following definition is used: 

Software quality is the extent to which an industry-defined set of desirable features are incorporated into a product so as to enhance its lifetime performance. 

This definition focuses on the existence of a product in the first place and that its quality has a time dimension. It also focuses on features which will enhance the product. Finally it requires the features to be incorporated from the beginning - by way of user requirements or similar specification - and not bolted on as an afterthought.