· Reverse engineering can extract design information from source code
· The abstraction level of a reverse engineering process refers to the sophistication of the design information that can be extracted from source code
· Ideally, the abstraction level should be as high as possible
· The reverse engineering process should be capable of
o Deriving procedural design representations (a low-level abstraction)
o Program and data structure information (a somewhat higher level of abstraction)
o Object models, data flow models (a relatively high level of abstraction)
o Entity relationship models (a high level of abstraction).
· As the abstraction level increases, the information will allow easier understanding of the program
· Interactivity refers to the degree to which the human is “integrated” with automated tools to create an effective reverse engineering process
· In most cases, as the abstraction level increases, interactivity must increase
· The directionality of the reverse engineering process is one-way, all information extracted from the source code is provided to the software engineer