2. Software Maintenance
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
3. Manish Kumar, NIT RAIPUR 3
Distribution of maintenance activities
corrective 21%
adaptive 25%
preventive 4%
perfective 50%
4. Types of Maintenance
• corrective maintenance: correcting errors
• adaptive maintenance: adapting to changes in the
environment . Taking existing code and adapting it to
provide new features and functionality.
• perfective maintenance: implementing new or changed
user requirements which concern functional enhancements
to the software, (adapting to changing user requirements)
• preventive maintenance: increasing software
maintainability or reliability to prevent problems in the
future
5. 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
• Reorganising and modifying existing software
systems to make them more maintainable
6. Re-engineering advantages
• Reduced risk
– There is a high risk in new software development.
There may be development problems, staffing
problems and specification problems
• Reduced cost
– The cost of re-engineering is often significantly
less than the costs of developing new software
7. Reverse engineering
• Reverse engineering is the process of discovering the
technological principles of a human made device,
object or system through analysis of its structure,
function and operation
• Analysing software with a view to understanding its
design and specification
• May be part of a re-engineering process but may also
be used to re-specify a system for re-implementation
• Builds a program data base and generates information
from this
• Program understanding tools (browsers, cross-
reference generators, etc.) may be used in this process