Using Visualization to Foster Object-Oriented Program Understanding

Software development and maintenance tasks rely on and can bene t from an increased level of program understanding. Object-oriented programming languages provide features which facilitate software maintenance, yet the same features often make object-oriented programs more di cult to understand. We support the use of program visualization techniques to foster object-oriented program comprehension. This paper identi es ways that visualization can increase program understanding, and presents a means for characterizing both static and dynamic aspects of an object-oriented program. We then describe the implementation of a prototypical tool for visualizing the execution of C++ programs. Based on this work, we de ne a framework for the visualization of object-oriented software which requires little or no programmer intervention and provides a mechanism which allows users to focus quickly on particular aspects of the program.

[1]  Doug Kimelman,et al.  Visualizing the behavior of object-oriented systems , 1993, OOPSLA '93.

[2]  S.P. Reiss A framework for abstract 3D visualization , 1993, Proceedings 1993 IEEE Symposium on Visual Languages.

[3]  Jürgen Herczeg,et al.  What tracers are made of , 1990, OOPSLA/ECOOP '90.

[4]  Elliot Soloway,et al.  Mental models and software maintenance , 1986, J. Syst. Softw..

[5]  David Harel,et al.  On visual formalisms , 1988, CACM.

[6]  E. J. Younger,et al.  Model-based tools to record program understanding , 1993, [1993] IEEE Second Workshop on Program Comprehension.

[7]  Steven P. Reiss,et al.  Support for Maintaining Object-Oriented Programs , 1992, IEEE Trans. Software Eng..

[8]  Steven P. Reiss,et al.  PECAN: Program Development Systems that Support Multiple Views , 1984, IEEE Transactions on Software Engineering.

[9]  Bin Luo,et al.  A framework for dynamic program analyzers , 1993, OOPSLA '93.

[10]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[11]  Harlan D. Mills,et al.  Understanding and Documenting Programs , 1982, IEEE Transactions on Software Engineering.

[12]  Thomas G. Moher,et al.  PROVIDE: A Process Visualization and Debugging Environment , 1988, IEEE Trans. Software Eng..

[13]  Stuart I. Feldman,et al.  IGOR: a system for program debugging via reversible execution , 1988, PADD '88.

[14]  Derek Coleman,et al.  Introducing Objectcharts or how to use Statecharts in object-oriented design , 1992 .

[15]  Panagiotis K. Linos,et al.  Facilitating the comprehension of C-programs: an experimental study , 1993, [1993] IEEE Second Workshop on Program Comprehension.

[16]  Nancy Pennington,et al.  Comprehension strategies in programming , 1987 .

[17]  Ruven E. Brooks,et al.  Towards a Theory of the Comprehension of Computer Programs , 1983, Int. J. Man Mach. Stud..

[18]  Steven P. Reiss Interacting with the field environment , 1990, Softw. Pract. Exp..

[19]  Kent Beck,et al.  A laboratory for teaching object oriented thinking , 1989, OOPSLA 1989.

[20]  Anneliese Amschler Andrews,et al.  From program comprehension to tool requirements for an industrial environment , 1993, [1993] IEEE Second Workshop on Program Comprehension.

[21]  John Stasko,et al.  Using Animation to Design, Document and Trace Object-Oriented Systems , 1992 .

[22]  P. E. Livadas,et al.  A toolset for program understanding , 1993, [1993] IEEE Second Workshop on Program Comprehension.

[23]  John T. Stasko,et al.  Understanding and characterizing software visualization systems , 1992, Proceedings IEEE Workshop on Visual Languages.

[24]  Grady Booch,et al.  Object-Oriented Design with Applications , 1990 .

[25]  Norman Wilde,et al.  Maintenance support for object oriented programs , 1991, Proceedings. Conference on Software Maintenance 1991.

[26]  David H. Taenzer,et al.  Problems in Object-Oriented Software Reuse , 1989, ECOOP.

[27]  Scott Meyers Working with Object-Oriented Programs: The View from the Trenches is Not Always Pretty , 1990 .

[28]  Stanley Letovsky,et al.  Cognitive processes in program comprehension , 1986, J. Syst. Softw..

[29]  Hideki Koike,et al.  The role of another spatial dimension in software visualization , 1993, TOIS.

[30]  Blaine A. Price,et al.  A Principled Taxonomy of Software Visualization , 1993, J. Vis. Lang. Comput..

[31]  Doug Kimelman,et al.  Modeling Object-Oriented Program Execution , 1994, ECOOP.

[32]  Michael F. Kleyn,et al.  GraphTrace - Understanding Object-Oriented Systems Using Concurrently Animated Views , 1988, OOPSLA.

[33]  Kate Ehrlich,et al.  Knowledge and processes in the comprehension of computer programs. , 1988 .