Answer : (4). P, Q and R only
Software Re-engineer is a process of software development which is done to improve the maintainability of a software system. Technical Definition: Software Re-engineering is the examination and alteration of a system to reconstitute it in a new form.
The statement P is true because in re-engineering we can quickly adapt new changes which are required for software.
Q statement is also fine because new technology can be added to software by using software re-engineering. For example, changing function-oriented programs into object-oriented programs.
R statement is also true Refactoring is a re-engineering technique that aims at reorganizing a program without changing its behavior. It seeks to improve a program structure and its maintainability.
The statement S is not included for Software re-engineering, No new functionality is added to the system but it is restructured and reorganized to facilitate future changes.