Using run-time data for program comprehension

Traditional approaches for program comprehension use static program analysis or dynamic program analysis in the form of execution traces. Our approach, however, makes use of runtime-data such as parameter and object values. Compared to traditional program comprehension techniques, this approach enables fundamentally new ways of program analysis which we have not seen so far. Reflection analysis which allows engineers to understand programs making use of reflective (dynamic) method invocations is one such analysis. Another is object tracing which allows engineers to trace and track the use of a given instance of a class within the program to be understood. In this paper we present these techniques along with a case study to which we have applied them.

[1]  Pattie Maes,et al.  Concepts and experiments in computational reflection , 1987, OOPSLA '87.

[2]  Rick Kazman,et al.  Playing Detective: Reconstructing Software Architecture from Available Evidence , 1999, Automated Software Engineering.

[3]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[4]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[5]  Rainer Koschke,et al.  Aiding program comprehension by static and dynamic feature analysis , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

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

[7]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[8]  Stéphane Ducasse,et al.  Using dynamic information for the iterative recovery of collaborations and roles , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[9]  Hausi A. Müller,et al.  The Software Bookshelf , 1997, IBM Syst. J..

[10]  Spiros Mancoridis,et al.  Form: a framework for creating views of program executions , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[11]  Hausi A. Müller,et al.  Programmable Reverse Engineering , 1994, Int. J. Softw. Eng. Knowl. Eng..

[12]  Norman Wilde,et al.  Early field experience with the Software Reconnaissance technique for program comprehension , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[13]  Mark Harman,et al.  Amorphous program slicing , 1997, Proceedings Fifth International Workshop on Program Comprehension. IWPC'97.