2. 2
• IT IS THE PROCESS OF MODIFYING A SOFTWARE SYSTEM OR
COMPONENT AFTER DELIVERY TO CORRECT
FAULTS,IMPROVE PERFORMANCE OR OTHER ATTRIBUTES
OR ADAPT TO A CHANGED ENVIRONMENT
DEFINITION
3. CATEGORIES OF SOFTWARE MAINTENANCE
3
CHALLENGES OF SOFTWARE MAINTENANCE
SOFTWARE REJUVENATION
CONFIGURATION MANAGEMENT
4. 4
THERE ARE FOUR CATEGORIES OF SOFTWARE MAINTENANCE
CORRECTIVE
ADAPTIVE
PERFECTIVE
PREVENTIVE
PERFECTIVE
50%
Adaptive
25%
Corrective
21%
Other type
4%
5. CORRECTIVE:-
Corrective Maintainance is reactive
modification of a Software Product performed
after delivery to correct discovered faults .
5
ADAPTIVE:-
Adaptive Maintainance is related to modification of a
Software product performed after delivery to keep a
computer program usable in a changed or a changing
enviroment .
6. PERFECTIVE:-
6
It is related to modification of a software product performed
after delivery to improved performance or maintainability .
OTHER TYPE:-
Ideally maintainance operation should not degrade the reliability and the structure
of the software neither they should degrade its maintainability otherwise future
changes will be progressively more difficult and costly to implement .
7. 7
HIGH STAFF TURNOVER
FLEXIBLE NATURE OF SOFTWARE
POOR DOCUMENTATION AND MANUALS
INADEQUATE BUDGETARY PROVISIONS
EMERGENCY FIXING OF BUGS
8. REVERSE ENGINEERING:-
The process of the creating of design
document from the source code and the
specification document from the design
document is called reverse Engineering.
Forward Engineering:-
In the software development lifecycle we
start from the specification phase and go
through the analysis phase design phase
and implementation phase . This journey of
the software development lifecycle is called
forward engineering.
analysis
Specification
design
implementation
Process of reverse engineering
Forward
engineering
R
ev
er
se
e
n
gi
n
e
er
ri
n
g
9. SOFTWARE RE-ENGINEERING:-
Software re-engineering is any activity that
improves ones understanding of the software
or prepares or improves the software itself
usually for increased
maintainability,reusability,evolvability.
9
Abstract view
Existing system Re-engineering
system
Process of re-engineering
Forward
engineering
Reverse
engineering