Reverse Engineering

Program-Transformation.Org: The Program Transformation Wiki
The ReverseAndReengineeringTaxonomy defines reverse engineering as:

The process of analyzing a subject system with two goals in mind:

  1. to identify the system's components and their interrelationships; and,
  2. to create representations of the system in another form or at a higher level of abstraction.

Observe that reverse engineering is a process of examination only: the software system under consideration is not modified (which would make it ReEngineering).

Reverse engineering resources include:
Reverse engineering topics covered on this wiki include:
Many reverse engineering tools follow a three step approach:

One of the papers discussing this in more detail is S. Tilley, S. Paul, and D. B. Smith; Towards a Framework for Program Understanding; IWPC 1996. In this paper, these activities are also explained as

  • Data Gathering
  • Knowledge Organization
  • Information Exploration

And for the lighter side...

CategoryReverseEngineering | Contributions by ArieVanDeursen