Tech Report CS-91-52

Support for Maintaining Object-Oriented Programs

Moises Lejter, Scott Meyers and Steven P. Reiss

August 1991


In this paper, we explain how inheritance and dynamic binding make object-oriented programs difficult to maintain, and give a concrete example of the problems that arise. We show that the difficulty lies in the fact that conventional tools are poorly suited for work with object-oriented languages, and we argue that semantics-based tools are essential for effective maintenance of object-oriented programs.

We then describe a system we have developed for working with C++ programs. This system comprises a relational database system for information about programs and an interactive database interface integrated with a text editor. We describe our system architecture, detail the database relations, provide informal evidence on the system's effectiveness, and compare it to other research with similar goals.

(complete text in pdf or gzipped postscript)