Structured software development

Harvey M. Deitel · 1980

This thesis is concerned with the solution of problems experienced in the development of large scale software systems. We seek means for speeding the software development process, reducing its associated costs and people requirements, constructing more reliable and more maintainable software, and improving management control over the evolving software system. The apparent ambiguity in the title of this work is intentional. We are certainly concerned with improving the methods of developing structured software. But, we are equally concerned with structuring the software development process. Two tangible methods are proposed for achieving these goals. First, we suggest the need for a single medium of expression for describing the system through the various project stages of analysis, design, implementation, testing and debugging, and retrofit. We call this medium of expression Softcode. The thesis specifies the syntax and semantics of the Softcode language and illustrates its use throughout the entire software life cycle. Second, we suggest the need for an automated system for controlling the evolving software system. We call this system AUSPICES - Automated Software Product Information Control and Evaluation System. The structure and functions of the AUSPICES system are presented in detail, and the value of the system is demonstrated. AUSPICES is a software system designed for an interactive time-sharing environment organized around a data base, data dictionary system. The combination of AUSPICES, Softcode, and the data dictionary is shown to provide a number of benefits not currently realized in software development efforts. The thesis contributes to and extends the body of knowledge in the evolving field of software engineering. As a formal discipline, software engineering is relatively new. As an informal area of interest, software engineering has been with us since the earliest days of modern computing. This thesis attempts to extend the field by introducing new formalisms and methodologies to improve the body of knowledge upon which the success of software engineering depends.

Read the paper · More papers on PaperTik