We define Reverse Engineering as the process of determining the contents of a computer system through parsing and analysis of the code that comprises the system. Using automated anaylsis, it is possible to identify
![]() |
The flow of control in and among programs, |
![]() |
Database elements, and their probable sources |
![]() |
Relationships between routines and data elements |

Reverse engineering is used to give a systematic picture of code modules that may not be well understood by those who are charged with the maintenance or replacement of that code. It is particularly useful for large projects such as the redesign of a system.