Reverse engineering differs fundamentally from reengineering because reverse…

2026

Reverse engineering differs fundamentally from reengineering because reverse engineering

  1. A.

    Modifies the internal design while preserving external functionality

  2. B.

    Converts conceptual designs into operational code

  3. C.

    Generates higher-level abstractions from existing lower-level artifacts

  4. D.

    Replaces obsolete modules with optimized versions

Show answer & explanation

Correct answer: C

Concept

In the Chikofsky-Cross software-reengineering taxonomy, reverse engineering is the process of analysing an existing system to identify its components and their relationships and to produce a representation of that system in another form or at a higher level of abstraction, without altering the subject system itself. Reengineering, by contrast, is the examination and alteration of a subject system to reconstitute it in a new form, so it always changes the system (typically by combining reverse engineering with restructuring and forward engineering).

Application

Applying this to the question: the activity unique to reverse engineering is producing a higher-level abstraction (such as a design or specification) starting from an existing lower-level artifact (such as source code) — and doing so without touching the running system. Reengineering necessarily changes the system, so any activity that modifies, replaces, or forward-implements the system belongs to reengineering or a related activity, not to reverse engineering.

Cross-check

  • "Modifies the internal design while preserving external functionality" describes restructuring — an internal-only change with the same external interface, which is a reengineering-family activity, not abstraction extraction.

  • "Converts conceptual designs into operational code" describes forward engineering — the traditional design-to-implementation direction, the opposite of what reverse engineering does.

  • "Replaces obsolete modules with optimized versions" describes a system-alteration/optimisation activity — again a change to the system rather than production of an abstract representation.

Hence, the option describing the generation of higher-level abstractions from existing lower-level artifacts is the one that uniquely defines reverse engineering as distinct from reengineering.

Explore the full course: Niacl Ao It Specialist

Loading lesson…