ITPEC FE Morning April 2020 Question 50

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.