This dissertation addresses a number of important software maintenance problems which fall within the framework of software management and software engineering. Compiling techniques were used to present in a standard form the structure of the COBOL program PROCEDURE DIVISION; as well as providing a framework for some complexity measures of a given COBOL program. The latter can give some measure of the ease of software modification during the software maintenance phase.
The purpose of the project of which this thesis is a part is to build up a database which will completely specify a COBOL program and enable it to be analysed in various ways related to maintenance, enhancement and other tasks.
A COBOL program information system ( M.JCAS) has been designed for use by the applications programmer, to acquire the information about a COBOL program ( e.g. complexity measures, control flow analysis ) by analysing the structure of the COBOL program. Various software methods such as structured programming, structured design, top-down design and bottom-up program testing were used throughout the MJCAS system development process. The finite-state machine concept was used to construct a COBOL lexical scanner. The COBOL programming syntax was parsed by the top-down recursive-descent method. The COBOL program was reformatted according to a coding standard to show the structure of the COBOL program.
Many complexity measures are mentioned in this thesis. A combination complexity measure method and guidelines are suggested. A COBOL program complexity factor is proposed. In general, the program complexity measure could apply to other programming languages.