An existing system is being extensively enhanced by extracting and reusing design and program
components. This is an example of:

A.
reverse engineering.
B.
prototyping.
C.
software reuse.
D.
reengineering.
Explanation:
Old (legacy) systems that have been corrected, adapted and enhanced extensively require
reengineering to remain maintainable. Reengineering is a rebuilding activity to incorporate new
technologies into existing systems. Using program language statements, reverse engineering
involves reversing a program’s machine code into the source code in which it was written to identify
malicious content in a program, such as a virus, or to adapt a program written for use with one
processor for use with a differently designed processor. Prototyping is the development of a system
through controlled trial and error. Software reuse is the process of planning, analyzing and using
previously developed software components. The reusable components are integrated into thecurrent software product systematically.