Software Engineering (2160701)

BE | Semester-6   Winter-2018 | 16-11-2018

Q5) (b)

Explain Reverse Engineering in brief

  • 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
    • Deriving procedural design representations (a low-level abstraction)
    • Program and data structure information (a somewhat higher level of abstraction)
    • Object models, data flow models (a relatively high level of abstraction)
    • Entity relationship models (a high level of abstraction).
  • As the abstraction level increases, 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