- Software, Software Engineering, and the Software Engineering Process
- Object Orientation
- Defect Management
- Specifying Quality
- Views of Quality
- Internal Quality and External Quality: Form Complements Function
- Software Product Quality Attributes
- Assessing Product Quality
- Achieving Quality Goals
Developing high-quality software, in whatever paradigm, is not an easy task. But what makes such development so difficult?
To begin with, the concept of quality itself is enigmatic. Davis (1994) acknowledged that the notion of quality in relation to a software product often means different things to the different stakeholders involved with the development and use of the product, and these notions may be contradictory. In other words, quality is not absolute and depends on the purpose or viewpoint for which it is being assessed.
As an example from another domain, to determine the quality of a bottle of wine, it is first necessary to determine the purpose for which the bottle is being purchased. These could include the following:
To enjoy with a meal. Here it is necessary to know the type of meal being served, the time of day of the meal, the season, and the ambient temperature, among other considerations. Once these are known, a number of criteria will be used to decide on the wine to be consumed.
To take to a party. One needs to know whether one is likely to be the only person drinking the wine or will be sharing. If one is to share, who will be there? What will their taste be in wine?
To impress a guest or a host. One needs to know about the recipient's level of knowledge of wine, his or her current financial situation, socioeconomic background, taste in wine, and so on.
Having determined the purpose and the issues that need to be considered relating to that purpose, only then will a person be in a position to use specific criteria to choose a particular bottle. To enjoy the wine with a meal, assuming a good knowledge of wine, the criteria might be region, style, bouquet, color, acidity, and price. Otherwise the choice might be made on the basis of producer, attractiveness of label, and price. A wine to be taken to a party is probably selected using similar criteria, but price and style probably play a more significant role. If the purpose is to impress, criteria to use will be price, rarity of vintage, and possibly packaging. Having decided on the criteria of assessment, what constitutes a good price or an appropriately rare vintage or good color? Some decisions are easily made. For example, it is a matter of simple numerical comparison to choose a bottle with a lower price, but such determination is hard when concrete measurements are absent, say in the case of bouquet. Even if measurable, such assessments are highly personal and culturally based. For example, a price of $50 for a bottle may be low for one person and unreachably high for another. Determinations of this nature, especially those that do not fall into a universally accepted scale, are based on the assessor's past history (social status, experience, place of birth, education, financial status, and a myriad of other influences).
Accordingly, we recognize that determination of the quality of an artifact is heavily culturally based.
It should be noted that in our example the choice of a bottle of wine is often not solely made on the measure of one criterion. Assessment usually means weighing up merits and levels of a number of criteria that are important for assessing the quality for a given purpose. It is also conceded that despite all of this, there are wines that are just "better" than others, seemingly irrespective of purpose.
First, a better wine, it seems, is one that is rated highly by the majority of assessors on the majority of criteria. Note however that being a better artifact does not mean that it is always the artifact of choice. If you cannot afford to drink the wine, you will never know if it is a quality wine. Without experiencing the artifact, definitive discussion of quality is meaningless.
Second, the rule of majority or authority often creates an aura of desirability or popularity around a certain product, often irrespective of its internal properties as assessed by the person experiencing it. We can identify wines that we acknowledge as being of high quality (because of our respect for experienced wine judges) but that we dislike.The preceding observations indicate to us that quality is determined through assessing the appropriateness of a product for fulfilling a given purpose, and is evaluated by (in order):
Determining the purpose for assessment;
Recognizing the premises for determination;
Determining the criteria for assessment;
Measurement against such criteria; and
Weighing up measurements against each other in view of the premises.
This view of quality is in accord with the popular definition of quality as fitness for purpose. It tacitly recognizes that the selection of purposes, viewpoints, and criteria, and the process of determination of quality are multifaceted. However, there is more to quality than just fitness for purpose. For example, is it not possible that many solutions to a problem be equally fit for the purpose, but still vary in quality due to their structure and form? Is "spaghetti code" that implements all of the functionality required in a specification as good as software that reaches the same level of meeting the functionality requirements but is highly modular, with high cohesion and low coupling, is internally well commented, and follows a consistent style? Additionally, does the amount of resources consumed inin other words the efficacy of means ofarriving at the solution a consideration in determining quality?
A wider discussion of quality and its implications and specification is required. We do this in the following section.