ITPEC FE Morning October 2018 Question 51
Which of the following is an explanation of reverse engineering of software?
Explanation
Analyzing existing software to clarify its specification and structure — reverse engineering works backwards from the finished product to its design.
Normal (forward) engineering goes from specification to design to code. Reverse engineering starts from the existing program, often its source code or even the executable, and recovers design information such as module structure, data definitions and specifications. It is used to maintain poorly documented legacy systems, to check interoperability, or as the first step of re-engineering.
Answer (b)
Why not others:
- •(a) — analyzing the software and then rebuilding it entirely is re-engineering, which uses reverse engineering only as its first step
- •(c) — changing internal structure while keeping external behavior the same is refactoring
- •(d) — a tool generating source code from design information is forward engineering (automatic code generation), the opposite direction
Key rule: Tell the terms apart by direction: forward engineering goes from design to code, reverse engineering from code to design, and re-engineering does both to rebuild the system.
Software Development Management Techniques · AI-written, may contain errors
This question comes from an official ITPEC past paper. ITPEC Practice is an independent study tool and is not affiliated with ITPEC. See the official FE past-paper collection or Report an issue.