Back to the 2026 paper

Module 5: Software Maintenance

20267m

Compare reverse engineering and software reengineering with respect to objectives, activities, outputs and their role in modernizing legacy systems.

Worked SolutionAI Assisted

Reverse Engineering vs Software Re-engineering

Reverse engineering = analysing an existing system (usually just the code or binary) to recover its design, specification and understanding. It does not change the software.
Re-engineering = restructuring or rewriting an existing system to improve quality or move it to a new platform, while keeping its functionality. It includes reverse engineering as a first step.

Comparison

Basis Reverse engineering Software re-engineering
Objective Understand the system and recover design/requirements when documentation is missing Improve maintainability, performance or platform of a legacy system
Changes the software? No (analysis only) Yes (restructure, convert, rewrite)
Main activities Code reading and analysis, extracting data and control flow, building structure charts, UML/ER diagrams, documentation Reverse engineering, restructuring/refactoring code and data, translating to a new language/platform, forward engineering, retesting
Outputs Design documents, models, call graphs, recovered requirements A restructured/migrated system that behaves the same way, plus updated documentation
Direction Backward (code to design) Backward then forward (code to design to new code)
Effort and cost Lower Higher, but lower than a full rewrite

Re-engineering process

Inventory analysis, document restructuring, reverse engineering, code restructuring, data restructuring, forward engineering, testing.

Role in modernizing legacy systems

Legacy systems are old, poorly documented and costly to maintain.

  1. Reverse engineering first recovers lost knowledge of how the system works.
  2. Re-engineering then restructures it or moves it to modern technology (new language, database, cloud) without rewriting from scratch.
  3. Result: lower maintenance cost, better quality, longer system life, and less risk than building a new system.

Reverse engineering is the analysis stage; re-engineering is the full modernization process that uses it.

Similar questions

Official AppAndroid App

PYQDeck for Android

Solve BEU previous-year exam papers anywhere, anytime. Fast search, offline paper viewing, and step-by-step solutions designed specifically for your phone.