Computer Aided Evolutionary Design for Software Engineering.
Abstract
This memorandum reports on a partially implemented interactive computer aided-design tool for software engineering. A distinguishing characteristic of this project is its concern for the evolutionary character of software systems. It draws a distinction between algorithms and systems, centering its attention on support for the system designer. Although verification has played a large role in recent research, this perspective suggests that the complexity and evolutionary nature of software systems require a number of additional techniques. Managing of complexity is a fundamental issue in all engineering disciplines. The authors identify three major techniques used in mature engineering fields which seem applicable to the engineering of software systems: incremental modelling; multiple and almost hierachical decomposition; and analysis by inspection. Along these lines they have (1) Constructed a plan library to aid in analysis by inspection (the analysis of a program based on identifying standard algorithms and methods in it); (2) Identified a small set of plan building methods which can be used to decompose a softwre system into loosely coupled subsystems; (3) Developed the technique of temporal abstraction which makes it possible to model a program from a viewpoint which clearly separates the actions of generations and consumers of data; and (4) Developed a dependency-based reasoning system uniquely suited to incremental and evolutionary program analysis. These methods are substantially language independent and have been applied to programs written in several commonly used languages.
Document Details
- Document Type
- Technical Report
- Publication Date
- Jan 01, 1979
- Accession Number
- ADA078060
Entities
People
- Charles Rich
- Howard Elliot Shrobe
- Richard C. Waters
Organizations
- Massachusetts Institute of Technology