All mock tests are FREE till 31 December — register to save your progress
Unit 6 · Software Engineering Paper 2 CS · December 2018

Which of the following statements is/are true?
P: Software Reengineering is preferable for software products having high failure rates, having poor design and/or having poor code structure.
Q: Software Reverse Engineering is the process of analyzing software with the objective of recovering its design and requirement specification.

Pick an option to check yourself, or open the answer below.

Show answer & explanation

Correct answer: D. Both P and Q

Explanation

Both statements are correct, so the answer is Both P and Q. Reengineering means examining and restructuring an existing system to rebuild it in a better form; it pays off exactly when a legacy product is failing often, is badly designed or has tangled code, because rewriting from scratch would be more expensive than restructuring. Reverse engineering is the analysis step that works backwards from existing code to recover the design, and in the extreme the requirement specification, which is why it is called the inverse of forward engineering. Since P and Q are standard textbook definitions, options (1), (2) and (3) each reject a true statement.

More Software Engineering questions