Reverse engineering is the process which deals with:
2009
Reverse engineering is the process which deals with:
Answer: C. Design recovery — ConceptReverse engineering is the process of analysing an existing software system to identify its components and their interrelationships, and to represent…
- A.
Size measurement
- B.
Cost measurement
- C.
Design recovery
- D.
All of the above
Attempted by 9 students.
Show answer & explanation
Correct answer: C
Concept
Reverse engineering is the process of analysing an existing software system to identify its components and their interrelationships, and to represent the system in another form or at a higher level of abstraction — the reverse of forward engineering, which moves from requirements down to code. Standard software-engineering taxonomy places two sub-activities under reverse engineering: redocumentation (producing a semantically equivalent representation of the system without changing it) and design recovery (reconstructing a valid, design-level abstraction of the system by combining source-code analysis with domain knowledge, personal experience, and any surviving documentation).
Application
Matching the four options against this taxonomy: only "design recovery" is a named sub-activity of reverse engineering. The remaining two component activities named in the option set belong to other software-engineering disciplines rather than to reverse engineering, and "All of the above" would require every one of the three to be a reverse-engineering activity:
Size measurement (e.g. counting lines of code or function points) is a software-metrics activity used for estimation and productivity tracking, not a step of reverse engineering.
Cost measurement (e.g. effort/cost estimation using a model such as COCOMO) is a project-planning activity performed before or during development, not an activity of analysing an existing system.
"All of the above" fails because it bundles size measurement and cost measurement in with design recovery, and the first two are not reverse-engineering activities.
Cross-check
An independent check: reverse engineering is invoked precisely when a team must understand a legacy system whose documentation is missing or stale before they can safely modify it. The objective in that scenario is always to recover a design-level understanding — module boundaries, data structures, control flow — never to measure the system's size or the project's cost. That confirms design recovery as the process reverse engineering deals with.