11th European Conference on Software Maintenance and Reengineering (CSMR'07)
Online Construction of Dynamic Object Process Graphs
Amsterdam, the Netherlands
March 21-March 23
ISBN: 0-7695-2802-3
A dynamic object process graph is a view on the con- trol flow graph from the perspective of a single object. It has been shown that such a graph can be a useful starting point for many reverse engineering tasks, such as program understanding, protocol recovery, and fea- ture location. In a previous paper, we described how dy- namic object process graphs can be constructed from de- tailed program traces. However, the size of such traces is immense. Moreover, the instrumentation was de- scribed only for procedural languages. Object-oriented features such as exceptions require special treatment. Also, techniques like multithreading and reflection were not handled by our previous approach. This prevented it from being applicable to real-life systems. In this paper, we introduce an alternative way of col- lecting the necessary data. By constructing an interme- diate graph online, i.e., concurrently with the running program, the trace size problem is eliminated. Addi- tional optimizations for both trace logging and online graph creation are discussed. In a case study, we show that running times are acceptable even for larger Java programs when these optimizations are applied. Addi- tionally, we discuss some special issues arising from analyzing Java instead of C.