Software Engineering (2160701)

BE | Semester-6   Winter-2019 | 14-12-2019

Q4) (B)

Differentiate software Engineering and Reverse Engineering. 

·       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