Typical developers spend much of their time modifying and fixing existing code rather than writing new code. The code requiring modification is often written by another developer with little or no documentation. This requires the developer to reverse engineer each component to determine the correct module that requires modification. This is a cumbersome and time-consuming process for projects that have a large code base. There are tools, however, that significantly help in the process of reverse engineering applications.
The Eclipse Test & Performance Tools Platform includes a tool called Probekit, which allows developers to dynamically instrument any Java application for the purpose of collecting runtime data. The runtime data collected can be used to generate the method hierarchy of certain operations or create visual overviews of the code under analysis. This presentation will demonstrate how Probekit can be used to reverse engineer Java applications. In particular, it will focus on demonstrating its ideal fit with reverse engineering Eclipse-based projects. The objective is for the audience to recognize the effectiveness in finding the code structure and paths of application components in a fraction of the time usually required.
A paper about this subject has also been published in the Spring 2006 issue of Eclipse Review: See page 41 of http://www.eclipsereview.com/issues/eclipsereview_200606.pdf This presentation will be a more in-depth look at this subject with better-enhanced demos.
Navid Mehregani is a full time Java developer at IBM Tivoli. He has extensive knowledge of the Test and Performance Tools Platform (TPTP) project and he is currently a committer to the project. His responsibilities are related to the data collection and agent management side of TPTP. Navid received his B.Sc. degree with high distinction from University of Toronto. He first joined IBM as a student working on the Xerces parsers. Upon completing his work term, he was recognized as a top talent student and was subsequently hired on the iSeries team. His last work term was on the TPTP team, which offered him a full time position at IBM.