A Strategy For Quality

In a scientific environment with specific research interests in the reliability of systems, specific efforts are being made to plan and implement changes which may support understanding and monitoring of the software development process. The approach essentially consists of adopting software engineering standards, process evaluation procedures and a quality measurement plan. The approach is initially applied to a pilot project, from which experience will be transferred to other projects and will grow stepwise to become a corporate style. Special attention is given to specific training and to the need of education curricula which may promote the quality of software. INTRODUCTION The development of a Strategy for Quality requires answers to a number of questions. The key point is, as usual, asking the right questions. Throughout this paper, the main concern is, indeed, to focus on essential and pertinent questions with the hope that satisfactory answers may be found. The specific interest focuses on the development of good quality software, at the level of the requirements which is common in other sectors of today's industry. The speed of development of electronic circuitry has given the software industry a frenetic turn-over. The rapidity of evolution causes obsolescence of products, even when they can still perform satisfactorily. The evolution of hardware technology imposes on software applications a growth of one order of magnitude approximately every five years. It is currently recognized that today's tools cannot cope satisfactorily with such a growth rate. Transactions on Information and Communications Technologies vol 9, © 1994 WIT Press, www.witpress.com, ISSN 1743-3517 44 Software Quality Management Under such constraints, short to medium-term initiatives cannot be successful. Conversely, planning for medium to long-term programmes introduces many parameters which are unlikely to be estimated (or even foreseen) correctly. Compromising between long-range planning and effective use of resources requires a strategy, open enough to be adapted to changing environments and flexible enough to allow dynamical distribution of efforts according to changing demands. Such a strategy has to be based on our understanding of quality. Faced with the question: how may quality be expressed? we learn from the dictionary that quality is the degree of excellence and is semantically opposed to quantity. Trying to understand more, by inference from the opposite concept, we learn that quantity is a property that is estimable by measure. Quality evaluation seems to be an aesthetic appreciation and, as such, it is subordinate to the subjective taste and preferences of the evaluators. That is, a totally unacceptable view for software quality, for which we need to analyse products and scale their properties over defined ranks of parameters. Despite its etymology, qualitative analysis is insufficient to foster quality while, surprisingly enough, quantitative analysis is mandatory to master the quality of software. What needs to be provided is a scientific approach, that is a task neither easy nor cheap to achieve. In order to justify the effort we need to understand: when is quality important? In fact, quality was not a primary concern in the early days of electronic data processing. At that time availability was much more important for the user. Of course, when availability is no longer a constraint and the choice on the market is rich, quality is an important selection criterion. Additionally, there are fields of application where security and/or safety are critical constraints. Therefore, seeking both reliability and high quality is the primary requirement. Analysing the behaviour of the market, the competition grows along (at least) two lines, the constraint on cost and reliability. The relationship between quality and such constraints may be expressed as follows: