Software Reengineering & Evolution Serge Demeyer Stéphane Ducasse Oscar Nierstrasz
Software Reengineering
-
Upload
abdul-wahid -
Category
Technology
-
view
10.565 -
download
1
Transcript of Software Reengineering
SOFTWARE RE-ENGINEERINGBy Abdul Wahid
Introduction Objective Business Re-engineering process Software Re-engineering process
model Re-engineering Approach
Big Bang Incremental Evolutionary
Risks Involved Summary
Contents
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
Re-engineering encompasses a combination of other processes reverse engineering Re-documentation Re-structuring translation forward engineering
Re-engineering
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
Reorganising and modifying existing software systems to make them more maintainable
Software Re-engineering
Preparation for functional enhancement
Improve maintainability Migration Improve reliability
Objectives
Copyright pressman
Copyright pressman
Software Re-engineering process model
Big Bang Incremental Evolutionary
Re-engineering Approach
Big Bang Approach
Incremental Approach
Evolutionary Approach
Re-engineering Risks
Risk AreaApplication
ToolProcess
Personnel Strategy
Technology
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
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
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
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
Roger S. Pressman, “Software Engineering: A Practitioner’s Approach, 5th edition”.
Ian Sommerville, “Software Engineering, 6th edition”, 2000.
linda Rosenberg, “Software Re-Engineering”. A. Sonhaji,Megah Mulya, Mubassiran, Nasruddin, Ari
Yanuar, “Rekayasa Ulang (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