Content area
Full Text
Introduction
Quality of the software product and process affects the competitive position of the business organization and the role of the IS function within the organization[1]. Information systems (IS) departments are under increased pressure to deliver operational systems on-time[2]. Poor quality systems consume additional resources and contribute to the two- to three-year backlog of development projects that exists in most companies[1,3]. The lack of information technology (IT) support in turn degrades the competitive position of enterprise[1,4].
Software engineering and information engineering (IE) have long advocated the application of engineering-like discipline to the software development activity[1,4,6]. Integrated computer aided software engineering (I-CASE) represents an attempt to use automation to increase developer productivity. These advances provide improved methods for carrying out the software development process; however, there is no accompanying improvement in the understanding of this process. The adaptation of the philosophy of total quality management (TQM) from the manufacturing quality literature has been proposed by some as a possible guide for introducing quality into the software development activity[7-10].
This article will examine the methods that have been proposed in the literature for moving the quality focus from the software product to the development process. The difficulties inherent in current software quality methods and the relevance of TQM tools for addressing these problems will be examined. Finally, a requirements specification model based on quality function deployment (QFD) will be proposed.
Process improvement in software engineering
Software quality has traditionally been defined in terms of fitness for use[3,5,11]. A software product is deemed fit for use if it performs to some level of user satisfaction, in terms of functionality and continuous operation[1,11,12].
Quality is built into the software product through a series of progressively more integrated testing:
* unit testing;
* string testing;
* integration testing;
* system testing;
* acceptance testing.
Folkes[1] raises the point that user satisfaction is highly dependent on the individual using the software application. Testing has also been criticized as impractical. The increasing complexity of modern software severely limits the ability of developers to inspect and test every possible input stream and logic path[12,13].
Cho[14] has described a statistical method for making inferences about the quality of a software product based on concepts of acceptance sampling. Software outputs are equated with the outputs...