Authors:
Philippe Dugerdil
and
David Sennhauser
Affiliation:
Univ. of Applied Sciences of Western Switzerland, Switzerland
Keyword(s):
Reverse engineering, Dynamic analysis, Time series, Moving average, Class coupling.
Related
Ontology
Subjects/Areas/Topics:
Health Engineering and Technology Applications
;
Neurocomputing
;
Neurotechnology, Electronics and Informatics
;
Reverse Engineering
Abstract:
Dynamic analysis of programs is one of the most promising techniques to reverse-engineer legacy code for software understanding. However, the key problem is to cope with the volume of data to process, since a single execution trace could contain millions of calls. Although many trace analysis techniques have been proposed, most of them are not very scalable. To overcome this problem, we developed a segmentation technique where the trace is pre-processed to give it the shape of a time series of data. Then we apply technical analysis techniques borrowed from the financial domain. In particular we show how the moving average filtering can be used to identify the “trend” of the involvement of the class in the execution of the program. Based on the comparison of the “trends” of all the classes, one can compute the coupling of classes in order to recover the hidden functional architecture of the software.