Program-Transformation.Org: The Program Transformation Wiki
The ReverseAndReengineeringTaxonomy defines reengineering as:
the examination and alteration of a subject system to reconstitute it in a new form and the subsequent implementation of the new form.
See also
E. J. Byrne
(A Conceptual Foundation for Software Re-Engineering, ICSM 1992, pp. 226-235) has proposed a model for reengineering distinguishing three steps: