Present to Ms.
Shehla
ABDUL REHMAN
BS(CS)5TH
TOPIC
MAINTENANCE
VS.
REENGINEERING
SOFTWARE SYSTEM
ABSTRACT
Maintenance and reengineering terms are closely
coupled with each other.
Maintenance and reengineering are two different
areas in software engineering.
Maintenance is for running the system till the age
of the system where as the reengineering make
the system new to work for another life span.
Maintenance is close to repair/mend where as
reengineering is very close to new development.
INTRODUCTION
Software engineering is a topic of importance
in the age of software and is gaining attention.
Software maintenance and software
reengineering both fall in the ambit of software
engineering.
SOFTWARE MAINTENANCE
Software maintenance is one of the stages in the
software development life cycle (SDLC).
It starts after the deployment of software in the
working field.
According to IEEE Std. ‘Software maintenance is
the process of modifying a software system or
component after delivery to correct faults, improve
performances or other attributes, or adapt to a
changed environment’.
TYPES
Software maintenance is of following four types
are as follows:
Corrective Maintenance
Adaptive Maintenance
Preventive Maintenance
Perfective Maintenance
TYPES……..CONTI
Corrective Maintenance:
As its name implies, activities of correcting bugs in
the software are included in this type of
maintenance. It is for making the software system to
conform to the real situation.
Adaptive Maintenance:
It deals with making the software adjustable to the changed environment.
Preventive Maintenance:
Modification of the software to detect and correct hidden faults (bugs) before becoming
active.
Perfective Maintenance:
It is modification of the software for better performance, maintenance and reliability. The
activities related to updating the software are included in this type of maintenance.
CONTI….
Cost
Software maintenance is last stage in the software development life cycle. Maintenance starts after the delivery
of the software. The ability to accurately estimate the time and cost of software maintenance is the key factor for
successful of maintenance project.
It goes on increasing with the increasing age of software as described in the following figure.
REENGINEERING
Reengineering is the analysis of existing
software system and modifying it to constitute
into a new form.
Improve the program structure and system performance.
STAGES
Reengineering has the following three stages.
[Link] engineering
[Link] transformations
[Link] engineering
CONTI…
Reverse engineering:
In this stage software is thoroughly understood. It is untied and underlying technology is perceived. Business process
is improved and requirements are updated. Objects are added or deleted according to the new system planned. In
this stage we go from code level to higher level abstraction. It is vertically upward step shown in the figure.
CONTI…
Architecture transformations:
Software architecture is changed. It is modified, improved to fit in the new technology and new
environment. It is the architecture designing stage. It is horizontally right ward step as shown in the figure.
CONTI…
Forward engineering:
In this stage, we move from higher level of abstraction to code level. In this stage software integrated
according to new design. It is vertically downward step as shown in the figure.
MAINTENANCE
Maintenance VS.
and reengineering are closely related
to REENGINEERING
each other.
Software maintenance starts after delivery of the
software to correct faults, to improve performance
and other attributes of the software.
When maintenance exhaust, reengineering is
called.
MODELS
Following are the models for change of
maintenance and reengineering.
Thoroughfare model
Cost based Model
Discrete Model
CONTI…
Thoroughfare model:
CONTI…
Cost based Model:
CONTI…
Discrete Model:
CONCLUSION
I hope that my presentation will be helpful for my
audience to improve their knowledge about Software
Maintenance and Re-Engineering. Also it helps to spread
awareness among normal or technical people about
development.