Software Reengineering

20
SOFTWARE RE- ENGINEERING By Abdul Wahid

Transcript of Software Reengineering

Page 1: Software Reengineering

SOFTWARE RE-ENGINEERINGBy Abdul Wahid

Page 2: Software Reengineering

Introduction Objective Business Re-engineering process Software Re-engineering process

model Re-engineering Approach

Big Bang Incremental Evolutionary

Risks Involved Summary

Contents

Page 3: Software Reengineering

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

Page 4: Software Reengineering

Re-engineering encompasses a combination of other processes reverse engineering Re-documentation Re-structuring translation forward engineering

Re-engineering

Page 5: Software Reengineering

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

Page 6: Software Reengineering

Reorganising and modifying existing software systems to make them more maintainable

Software Re-engineering

Page 7: Software Reengineering

Preparation for functional enhancement

Improve maintainability Migration Improve reliability

Objectives

Page 8: Software Reengineering
Page 9: Software Reengineering

Copyright pressman

Page 10: Software Reengineering

Copyright pressman

Software Re-engineering process model

Page 11: Software Reengineering

Big Bang Incremental Evolutionary

Re-engineering Approach

Page 12: Software Reengineering

Big Bang Approach

Page 13: Software Reengineering

Incremental Approach

Page 14: Software Reengineering

Evolutionary Approach

Page 15: Software Reengineering

Re-engineering Risks

Risk AreaApplication

ToolProcess

Personnel Strategy

Technology

Page 16: Software Reengineering

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

Page 17: Software Reengineering

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

Page 18: Software Reengineering

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

Page 19: Software Reengineering

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

Page 20: Software Reengineering

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