16th IEEE International Conference on Automated Software Engineering (ASE'01)
Adequate Reverse Engineering
San Diego, California
November 26-November 29
ISBN: 0-7695-1426-X
Reverse engineering a program constructs a high-level representation suitable for various software development purposes such as documentation or reengineering. Unfortunately however, there are no established guidelines to assess the adequacy of such a representation. We propose two such criteria, completeness and accuracy, and show how they can be determined during the course of reversing the representation. A representation is successfully reversed when it is given as input to a suitable code generator, and a program equivalent to the original is produced. To explore this idea, we reverse engineer a small but complex numerical application, represent our understanding using algebraic specifications, and then use a code generator to produce code from the specification. We discuss the strengths and weaknesses of the approach as well as alternative approaches to reverse engineering adequacy.
Index Terms:
Reverse engineering, algebraic specification, code generation, adequacy, representation
Citation:
Spencer Rugaber, Terry Shikano, R. E. Kurt Stirewalt, "Adequate Reverse Engineering," ase, pp.232, 16th IEEE International Conference on Automated Software Engineering (ASE'01), 2001