This Article 
 Bibliographic References 
 Add to: 
Support for Maintaining Object-Oriented Programs
December 1992 (vol. 18 no. 12)
pp. 1045-1052

It is explained how inheritance and dynamic binding make object-oriented programs difficult to maintain, and a concrete example of the problems that arise is given. It is shown that the difficulty lies in the fact that conventional tools are poorly suited for work with object-oriented languages, and it is argued that semantics-based tools are essential for effective maintenance of object-oriented programs. A system developed for working with C++ programs is described. It comprises a relational database system for information about programs and an interactive database interface integrated with a text editor. The authors describe the system architecture, detail the database relations, provide informal evidence on the system's effectiveness, and compare it to other research with similar goals.

[1] M. Lejteret al., "Support for maintaining object-oriented programs," inProc. IEEE Conf. Software Maintenance, pp. 171-178, Oct. 1991.
[2] R. M. Stallman, "EMACS: The extensible, customizable, self-documenting display editor," inProc. ACM SIGPLAN/SIGOA Symp. Text Manipulation, pp. 147-156, June 1981.
[3] S. P. Reiss, "Connecting tools using message passing in the FIELD program development environment,"IEEE Software, pp. 57-67, July 1990. (Also available as Brown University Computer Science DepartmentTechnical Report CS-88-18, "Integration mechanisms in the FIELD environment," 1988).
[4] S. P. Reiss, "Interacting with the FIELD environment,"Software: Practice and Experience, vol. 20, pp. 89-115, June 1990.
[5] S. P. Reiss and S. Meyers, "FIELD Support for C++," inUSENIX C++Conf. Proc., pp. 293-299, Apr. 1990.
[6] R. Raghavan, N. Ramakrishnan, and S. Strater, "A C++ class browser," in1987 USENIX C++Papers, pp. 274-281, 1987.
[7] S. Meyers and S. P. Reiss, "A system for multiparadigm development of software systems," inProc. Sixth Int. Workshop on Software Specification and Design, Oct. 1991. (Also available as Brown University Computer Science DepartmentTechnical Report CS-91-50, Aug. 1991.)
[8] S. Meyers, "Representing software systems in multiple-view development Environments," Ph.D. dissertation, Brown University Department of Computer Science, 1993.
[9] S. Meyers, "Working with object-oriented programs: The view from the trenches is not always pretty, " inProc. Symp. Object-Oriented Programming Emphasizing Practical Applications (SOOPPA), pp. 51-65, Sept. 1990.
[10] B. Lewis and D. LaLiberte,The GNU Emacs Lisp Reference Manual, The Free Software Foundation, 1990.
[11] P. D. O'Brien, D. C. Halbert, and M. F. Kilian, "The Trellis programming environment," inProc. 1987 Conf. Object-Oriented Programming Systems, Languages and Applications (OOPSLA '87), pp. 91-102, Oct. 1987.
[12] W. Teitelman and L. Masinter, "The Interlisp programming environment,"IEEE Computer, vol. 14, pp. 25-34, Apr. 1981.
[13] R. T. Hood and K. Kennedy, "A programming environment for Fortran,"Tech. Rep. TR84-1, Rice University, June 1984.
[14] Y.-F. Chen, M. Y. Nishimoto, and C. V. Ramamoorthy, "The C information abstraction system,"IEEE Trans. Software Eng., vol. 16, pp. 325-334, Mar. 1990.
[15] J. E. Grass and Y.-F. Chen, "The C++ information abstractor," inUSENIX C++Conf. Proc., pp. 265-277, 1990.
[16] J. Browne and D. B. Johnson, "FAST: A second generation program analysis system," inProc. Second Int. Conf. Software Engineering, pp. 142-148, 1977.
[17] J. L. Steffen, "Interactive examination of a C program with CScope," inProc. USENIX Association Winter Conf., pp. 170-175, 1985.
[18] M. A. Linton, "ImpIementing relational views of programs," inSIGSOFT/SIGPLAN Software Engineering Symp. Practical Software Development Environments, Pittsburgh, PA, Apr. 1984, pp. 132-140, see alsoSIGSOFT Software Eng. Notes, vol. 9, no. 3, May 1984; see alsoSIGPLAN Notices, vol. 19, no. 5, May 1984.
[19] S. B. Zdonik and P. Wegner, "A database approach to languages, libraries, and environment,"Tech. Rep. CS-85-10, Brown University Department of Computer Science, 1985.
[20] T. E. Cheatham, Jr., "An overview of the Harvard program development system," inSoftware Engineering Environments, H. Hunke, Ed. New York: North-Holland, 1981.
[21] D. S. Rosenblum and A. L. Wolf, "Representing semantically analyzed C++ code with reprise," inUSENIX C++Conf. Proc., pp. 119-134, Apr. 1991.

Index Terms:
program maintenance; object-oriented programs; inheritance; dynamic binding; object-oriented languages; semantics-based tools; C++ programs; relational database system; interactive database interface; text editor; C language; inheritance; object-oriented languages; object-oriented programming; relational databases; software maintenance
M. Lejter, S. Meyers, S.P. Reiss, "Support for Maintaining Object-Oriented Programs," IEEE Transactions on Software Engineering, vol. 18, no. 12, pp. 1045-1052, Dec. 1992, doi:10.1109/32.184759
Usage of this product signifies your acceptance of the Terms of Use.