Back to the 2024 paper

Module 5: Software Maintenance

20242m

Software reengineering is concerned with

(i) Improving the software design and structure without changing functionality
(ii) Adding new features to the software
(iii) Building a new system from scratch
(iv) Fixing bugs in the system

Worked SolutionAI Assisted

Answer: (i) Improving the software design and structure without changing functionality

Software re-engineering is "the examination and alteration of a subject system to reconstitute it in a new form" — in practice its primary focus is to improve the software's design/structure and maintainability (restructuring existing code, recovering documentation, modernizing architecture) while preserving the existing functionality, so the value of the legacy system is retained with reduced maintenance cost.

Why the others are wrong:

  • (ii) Adding new features — that would be perfective maintenance/enhancement, not re-engineering per se.
  • (iii) Building a new system from scratch — that is new development/forward engineering; re-engineering works on the existing system.
  • (iv) Fixing bugs — that is corrective maintenance, not re-engineering.

So re-engineering is concerned with improving the software design and structure without changing the functionality — option (i).

Similar questions

Free AppAndroid App

Coursify Android App

Generate AI courses, take quick quizzes between classes, and master complex engineering concepts on the go.