Font Size: a A A

Research On Static And Dynamic Combined Analysis In Object-Oriented Reverse Engineering

Posted on:2008-06-10Degree:MasterType:Thesis
Country:ChinaCandidate:X J GongFull Text:PDF
GTID:2178360212474572Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
For the complexity of software systems, the main works of software development, maintenance and evolution have been focused on the comprehension of existing systems. Reverse engineering is an effective method to the program comprehension, and it is a significant research branch of software engineering. It creates representations of the system at a higher level of abstraction to assist the program comprehension by extracting the static information and dynamic information from the target system.Call Graph plays an important role in the analysis of the interactions in an object-oriented system. Static information can not reflect polymorphism and dynamic binding information while dynamic information only obtains the executing traces and can not gain the whole dependency relations.On the basis of thorough analyses of reflectional instrumentation techniques, open compiler technology and the fruit of the former research, this thesis mainly focuses on the topic of static call graph information extraction in reverse engineering. And this paper also do some researches on how to decrease the instrumentation scope by analysis of the branch information in the static call graph. And then, this paper bring forward a program understanding technique which combines static and dynamic analysis to construct a call graph for assisting program comprehension. At last, the research on one test case shows that the static and dynamic combined call graph really can show both integrate accurate static dependency information and dynamic executing trace and do well in assistant on program comprehension.All of the algorithms and methods provided in this paper have been implemented in a toolkit named XDRE(XiDian Reverse Engineering).
Keywords/Search Tags:Object-Oriented, Reverse Engineering, Call Graph, Open Compiler, Reflective Instrumentation, Dynamic and Static Combined Analysis
PDF Full Text Request
Related items