An approach to the generation of software life cycle support systems

Over the years, there has been steady progress in the way computer based information processing systems are developed. However, the progress in software production has not been as pronounced as the advancement of the capabilities of the hardware on which the systems are implemented. This dissertation directs its attention to the software production aspects of system development. Considerable effort has been devoted to improving the methods of software development and a number of different approaches have been used. Basically, the improvements have come in two different forms: (1)improvements of the product (software) itself through better structure, and (2)improvements in the way software is developed, including use of tools and better management of software projects. One of the approaches to improving software production considers system development as an application area in its own right. This approach has the objective of developing a computer based information processing system for the systems department. The product of the systems department is an application system for other applications. A class of computer-based systems, called "life-cycle support systems (LSS's)", that support the application in the systems department is identified. The functions that an LSS must possess are: (1)Accept system description in some predefined notation, (2)Maintain a data base containing the system description, (3)Perform analyses on the system description stored in the data base, (4)Produce documentation and other outputs based on the system description, and (5)Perform monitoring and other control functions of development activities. Specification and development of LSS's has been difficult and time-consuming, and LSS's are not widely used yet. This dissertation is concerned with a method for developing LSS's. Specifically, it proposes a specialized tool, the LSS generator. The LSS generator approach consists of two steps: (1)An LSS developer uses the LSS generator to define an LSS in a formal language, (2)The definition of an LSS is processed to "generate" the LSS software and documentation. In order to do this, the LSS generator must have a model ("meta-model") of information processing system models and a language definition facility. In the proposed LSS generator, the meta-model is based on Chen's Entity-Relationship model, and the language definition is based on regular expressions. To demonstrate the practicality of this approach, an initial version of these concepts have been implemented. A prototype implementation (META/GA) is described, and examples of applications of META/GA are given. The results demonstrate that these concepts are feasible and that further development is warranted.