ABSTRACT

One of the main classes of solution proposed by the software engineering community has been the development of structured methods for software development. These methods are intended to improve both the quality of software (typically its maintainability, reliability, efficiency and usability: Sommerville 1989) and the productivity of those who produce software by placing the implementation stage, the actual writing of computer programs, in a broader context. Boehm (1975) is widely quoted as estimating that implementation represents only about 20% of the cost of software development and that the requirements and design that precedes implementation and the testing that follows account for approximately 40% each of the total software development costs. These costs vary, of course, with the nature of the software product, the development approach used, the tools available, and so forth, but even so, Boehm’s cost estimates for implementation range only from 17% (for operating system development) to 28% (for business systems).