Object-Oriented Program Tracing and Visualization

  • Authors:
  • Danny B. Lange;Yuichi Nakamura

  • Affiliations:
  • -;-

  • Venue:
  • Computer
  • Year:
  • 1997

Quantified Score

Hi-index 4.10

Visualization

Abstract

Object orientation has changed software development for the better, but it has not really made programs easier to understand. Object-oriented program analysis tools remain rare because OO concepts such as inheritance and polymorphism render conventional analysis and presentation techniques insufficient. The authors describe a way to obtain, manipulate, and visualize OO execution traces that provides fine-grained localization information for program understanding. Applying dynamic analysis along with interactive visualization makes it possible to determine the exact program paths that influence particular objects and facilitates recognition of execution patterns. Because an object can invoke methods in itself and in other objects, an interaction graph becomes an important tool for modeling object interaction. However, even small toy programs may produce so many invocations that the interaction graph becomes unmanageable. The solution is to use search-space-reducing techniques such as merging, pruning, and slicing to remove unwanted information from the interaction graph, thereby limiting its complexity and size. The research prototype Program Explorer takes a user through a series of executions and visualizations to explain a given program and its framework. Although it was originally designed for C++, a version developed for IBM's System Object Model demonstrated that the concepts are applicable to OO languages in general. The authors believe Program Explorer can be applied to a wide range of software engineering problems, such as framework understanding to improve reuse, application logic analysis for maintenance, and visual debugging of OO code.