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
- A legacy software system has 940 modules. The latest release requires that 90 of these modules be changed. In addition, 40 new modules were…
- Software products need perfective maintenance for which of the following reasons?
- A software has been observed to crash 20 times during the year 2017 and each time it took 2 minutes to restart. What is the approximate ava…
- Which of the following are the reasons for software re-engineering? P: Allow legacy software to quickly adapt to the changing requirements.…
- Which of the following is not a key strategy followed by the clean room approach to software development?
- Consider the following statements: P: Refactoring is the process of changing a software system in such a way that it does not alter the ext…