12. Re-engineering is the examination, analysis and alteration of an existing software system to reconstitute it in a new form, and the subsequent implementation of the new form Introduction
13. Re-engineering encompasses a combination of other processes reverse engineering Re-documentation Re-structuring translation forward engineering Re-engineering
14. Re-structuring or re-writing part or all of a legacy system without changing its functionality Applicable where some but not all sub-systems of a larger system require frequent maintenance Re-engineering involves adding effort to make them easier to maintain. The system may be re-structured and re-documented System Re-engineering
15. Reorganising and modifying existing software systems to make them more maintainable Software Re-engineering
25. Technology risks Recovered information is not useful or used Reverse engineering to representations that cannot be shared Reengineering technology inadequate to accomplish reengineering goals Tool risks Dependence on tools that do not perform as advertised Not using installed tools Re-engineering Risks
26. Strategy risks Premature commitment to a reengineering solution for an entire system Failure to have a long-term vision with interim goals Lack of global view: code, data, process reengineering No plan for using reengineering tools Application risks Reengineering with no local application experts available Existing business knowledge embedded in source code is lost Reengineered system does not perform adequately Re-engineering Risks
27. Process risks Extremely high manual reengineering costs Cost benefits not realized in required time frame Cannot economically justify the reengineering effort Reengineering effort drifts Lack of management commitment to ongoing reengineering solution Personnel risks Programmers inhibiting the start of reengineering Programmers performing less effectively to make an unpopular reengineering project look less effective Re-engineering Risks
28. Software Re-engineering is reorganising and modifying existing software systems to make them more maintainable. Its purpose is to improve the current system. occurs at two different levels of abstraction Business level Software level Re-engineering approaches Big Bang Incremental Evolutionary Risks Summary
29. Roger S. Pressman, “Software Engineering: A Practitioner’s Approach, 5thedition”. Ian Sommerville, “Software Engineering, 6th edition”, 2000. lindaRosenberg, “Software Re-Engineering”. A. Sonhaji,MegahMulya, Mubassiran, Nasruddin, Ari Yanuar, “RekayasaUlang (Reengineering)” Ira D. Baxter,Michael Mehlich, “Reverse Engineering is Reverse Forward Engineering”, 1997 David Eichman, “Factors in Reuse and Reengineering of Legacy Software”. Repository Based Software Engineering Program Research Institute for Computing and Information Systems University of Houston – Clear Lake, 1997 References