Abstract

The potential and limitations of reverse engineering techniques is still a matter of debate and investigation. Both experimental studies and commonsense tell us that design abstractions are useful in program understanding and maintenance. In the case of incomplete program documentation, reverse engineering tools can recover some of the design abstractions from code. However, it is not clear which design abstractions can and which cannot be automatically recovered. This can be attributed to the understandable reluctance of industry to publicize explicit knowledge of this process due to its enormous commercial value and the fact that reverse engineering is a fairly new research discipline. As a start to formalizing what we already know about reverse engineering, we propose a framework for describing and evaluating reverse engineering methods and tools. First, we build design models for a source language and for the recovered design. Then, we describe what a given reverse engineering method or tool achieves as a formal mapping from the source language design model into the recovered design model. We show use object recovery scenarios to illustrate the presented concepts.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call