The goal of this project is to develop techniques for creating a knowledge base containing the design history of software intensive systems and to develop prototype tools for using this knowledge to reduce life cycle costs for these systems. A formalism using concepts from object oriented programming will be used in automating or aiding in some aspects of many of the stages in the software life cycle, including design, implementation, and maintenance. The phase I effort will include completion of the formalism and the development and documentation of prototype tools for the creation and application of the knowledge base. These tools will be applied to some simple systems and the results will be evaluated to determine their utility in large systems. It is expected that these techniques will result in significant improvements in current applications and facilitate the use and integration of future developments in Computer Aided Software Engineering.