Design principles for software manufacturing tools

A good solution to the reusable code problem turns out to provide a solid technical basis from which to understand and deal with the production, quality, and maintenance issues currently besieging the software industry. To this end, a software manufacturing methodology has been developed called Computer Aided Programming tm. CAP is based on a functional programming concept called a frame, motivated in turn by the reusable code problem. The introduction explains the necessary background ideas about frames. Section two analyzes the subtle but important distinction between problem solving and programming. CAP design principles are then developed which show how to build software tools that support problem solving through open—ended, structured, program manufacturing techniques. The principles are organized around the flow of program specifications from 'under' to 'optimally', to 'over' specified, machine executable instructions. The components of an existing CAP system are described in section three, and section four discusses the usage of CAP as a manufacturing technique. Statistics from a case study are presented which indicate that: (a) production quality commercial software can be manufactured at rates exceeding 2000 lines of debugged COBOL per man-day (including systems design time), and (b) less than 10% of this code needs to be hand written /-maintained.