Re- engineeniering
Forward engineering: Re-engineering: Starts with system specifications and evolves the design & implementation of a new system Re-engineering: Starts with an existing system & the development process for the replacement is based on understanding and transforming the original system.
Re-engineering Legacy program Structured modularized version of the program
Activities performed during Re-engineering Source code translation: Old language Modern version language Reverse engineering: Documentation. (After analyzing the program) Program structure improvement: Control structure analyzed and modified to make it easier to read and understand
Program modularization: Related parts of the program are grouped together and where appropriate, redundancy is removed. In some cases, this stage may involve architectural transformation where a centralised system extended for a single computer is modified to run on a distributed platform. Data re-engineering: The data processed by the program is changed to reflect program changes
Re-engineering Process Program Documentation Original program Reverse engineering Program Modularization Source code translation Modularized Program Original data Program structure improvement Data Re-engineering Structured Program Re-engineered Data
Factors affects Re-engineering cost The quality of the software The tool support available The extent of data conversion required The availability of expert staff
Other Approaches for software development Personal Software Process (PSP) Team Software Process (TSP)