Software re-engineering is concerned with re-implementing legacy systems
to make them more maintainable. Re-engineering may involve re-documenting the
system, organising and restructuring the system, translating the system to a more
modern programming language and modifying and updating the structure and values
of the system’s data. The functionality of the software is not changed and,
normally, the system architecture also remains the same
Advantages of Software Re-engineering
- Reduced risk-There is a high risk in re-developing software that is essential
for an organisation. Errors may be made in the system specification, there
may be development problems, etc.
- Reduced cost-The cost of re-engineering is significantly less than the costs of
developing new software.
The term re-engineering is also associated with business process reengineering. Business process re-engineering is concerned with redesigning business processes to reduce the number of redundant activities and
improve process efficiency therefore it becomes a driver for software re-engineering when it becomes clear that the business changes require systems support or the changes in the business processes cannot be accommodated in the normal software maintenance.