SOFTWARE
MAINTENANCE
Management of Maintenance
Maintenance Process
Maintenance Models
SUMOD SUNDAR
S1 MTech CSE
Rollno:116
MANAGEMENT OF
MAINTENANCE
Software maintenance is a very broad activity that
includes
Error corrections,
Enhancements of capabilities,
Deletion of obsolete capabilities, and
Optimization.
Categories
Corrective maintenance
Modifications initiated by defects in the software.
Adaptive maintenance
Modifying the software to match changes in the ever
changing environment.
Perfective maintenance
Improving processing efficiency or performance, or
restructuring the software to improve changeability.
Enhancement of existing system functionality,
Improvement in computational efficiency etc.
Categories cntd..
Preventive maintenance
There are long term effects of corrective, adaptive and
perfective changes.
This leads to increase in the complexity of the software,
which reflect deteriorating structure.
The work is required to be done to maintain it or to reduce
it, if possible.
This work may be named as preventive maintenance.
Categories: Corrective maintenance
Impractical to exhaustively test a large software system.
Therefore reasonable to assume that any large system will have
errors .
Testing should be thorough for common cases, so errors likely to
be obscure.
The process of receiving reports of such errors, diagnosing the
problem, and fixing it is called "corrective maintenance"
Categories cntd..
Perfective maintenance
Users and marketers are never satisfied.
Even if a system is wildly successful, someone will want new
or enhanced features added to it.
Sometimes alter the way a certain component of the system
works, or its interface.
The process of
receiving suggestions and requests for such enhancements
or modifications,
evaluating their effects, and implementing them is called
"perfective maintenance"
Categories cntd..
Preventive maintenance
Sometimes changes are needed for entirely internal reasons
Such changes have no direct discernible effect on the user, but
lay the groundwork for easier maintenance in the future.
Alternatively, such changes may improve reliability,
or provide a better basis for future development.
The process of
planning such code reorganizations,
implementing them,
and testing to ensure that they have no adverse impact is
known as "preventative maintenance"
Typical problems with maintenance
Inadequate documentation of software evolution
Inadequate documentation of software design and structure
Loss of "cultural" knowledge of software due to staff turnover
Lack of allowance for change in original software design
Maintenance is unglamorous and may be viewed as a
"punishment task"
Problems During
Maintenance
Often the program is changed by person who did not
understand it clearly.
Program listings are not structured.
High staff turnover.
Information gap.
Systems are not designed for change.
MAINTENANCE PROCESS
Maintenance process
Complex and varied (depends on type of maintenance)
In general...
...request (in standard format)
...triage (determine priorities)
...analyse (for cost and consequences)
...design and implement
...test
..document
Program understanding
Analyzing the program in order to understand.
Generating particular maintenance proposal
Generating a particular maintenance proposal
to accomplish the implementation of the
maintenance objective.
Ripple effect
Accounting for all of the ripple effect as a
consequence of program modifications.
Modified Program Testing
Testing to ensure that the modified program has
at least the same reliability level as before.
Maintainability
Each of these four phases and their associated
software quality attributes are critical to the
maintenance process.
All of these factors must be combined to form
maintainability
MAINTENANCE MODELS
Maintenance models
Quick-fix Model
Iterative Enhancement Model
Reuse Oriented Model
Boehms Model
Taute Maintenance Model
Quick-fix Model
Adhoc approach to maintaining software.
Fire fighting approach.
Problem found
Fix it
Iterative Enhancement Model
Analysis
Characterization of proposed modifications
Redesign and implementation
Analyze existing system
Redesign current
version and
implementation
Characterize
proposed
modifications
Reuse Oriented Model
1. Identification of the parts of the old system
that are candidates for reuse.
2. Understanding these system parts.
3. Modification of the old system parts
appropriate to the new requirements.
4. Integration of the modified parts into the new
system.
Boehms Model
Boehm proposed a model for the
maintenance process based upon the
economic models and principles.
Boehm represent the maintenance process as
a closed loop cycle.
Taute Maintenance Model
Thank you