kirancodes.me
To Proof Maintenance & Beyond!

Adequate Reverse Engineering

Spencer Rugaber, Terry Shikano, Kurt Stirewalt

Abstract

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.

BibTeX
@inproceedings{Rugaber-al:ASE01,
  author    = {Spencer Rugaber and
               Terry Shikano and
               Kurt Stirewalt},
  title     = {Adequate Reverse Engineering},
  booktitle = {ASE},
  pages     = {232-},
  publisher = {{IEEE} Computer Society},
  year      = {2001},
}

Related papers