Program Restructuring Modify source code and data in order to make it amenable to future changes Code restructuring Design with same function with higher quality than original program Data restructuring Involves restructuring the database or the database schema May involve code restructuring
Software Engineering II Lecture 40 Fakhar Lodhi
Recap
Forward Engineering Application of SE principles, methods, and concepts to re-create an existing application In most cases forward engineering does not simply create a modern equivalent of an older program, rather new user and technology requirements are integrated into the reengineering effort.
The Economics of Reengineering Cost benefit analysis P1 : current annual maintenance cost for an application P2 : current annual operation cost for an application P3 : current annual business value of an application P4 : predicted annual maintenance cost after reengineering P5 : predicted annual operations cost after reengineering
The Economics of Reengineering P6 : predicted annual business value cost after reengineering P7 : estimated reengineering cost P8 : estimated reengineering calendar time P9 : reengineering risk factor (1.0 is nominal) L : expected life of the system
The economics of reengineering C maintenance = [P3 – (P1 + P2)] x L Where P1 = current annual maintenance cost for an application P2 = current annual operation cost for an application P3 = current annual business value of an application L = expected life of the system
The economics of reengineering C reengineering = [P6 – (P4 + P5) x (L – P8) – (P7 x P9)] Where P4 = predicted annual maintenance cost after reengineering P5 = predicted annual operations cost after reengineering P6 = predicted annual business value cost after reengineering P7 = estimated reengineering cost P8 = estimated reengineering calendar time P9 = reengineering risk factor (1.0 is nominal) L = expected life of the system