The principles of Reengineering when applied to the software development process is called software re-engineering. It affects positively at software cost, quality, service to the customer and speed of delivery. In Software Re-engineering, we are improving the software to make it more efficient and effective.
It 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. This process encompasses a combination of sub-processes such as reverse engineering, restructuring, redocumentation, forward engineering, and retargeting.
The software reengineering is necessary for having-
a) Boost up productivity: Software reengineering increases productivity by optimizing the code and database so that processing gets faster.
b) Processes in continuity: The functionality of older software products can be still used while the testing or development of software.
c) Improvement opportunity: Meanwhile the process of software reengineering, not only software qualities, features and functionality but also your skills are refined, new ideas hit in your mind.
Steps involved In Software Reengineering:
Source Code Translation
Reverse Engineering
Program Structure
Improvement
Program Modularisation
Data Reengineering
Advantages:
Reduced Risk-As the software is already existing,the risk is less as compared to developing a new software
Reduced Cost-The cost of reengineering is significantly less than the costs of developing a new software.