|
Software Maintenance
Maintenance comes under the support phase. Maintenance accounts
for more effort than any other software engineering activity. It
focuses on change associated with error correction, adaptations
required as the software's environment evolves, and changes due
to enhancements brought about by changing customer requirements.
Four types of changes are encountered during the support phase:
- Corrective Maintenance: Even with the best quality assurance
activities, it is likely that the customer will uncover defects
in the software. Corrective maintenance changes the software to
correct defects.
- Adaptive Maintenance: Over time, the original environment (e.g.,
CPU, OS, rules, external product characteristic) for which the
software was developed is likely to change. Adaptive maintenance
results in modification to the software to accommodate changes
to its external environment.
- Perfective Maintenance: As the software is used, the customer
will recognize additional functions that will provide benefit.
Perfective maintenance extends the software beyond its original
functional requirements.
- Preventive Maintenance: Computer software deteriorates due to
change, and because of this, preventive maintenance, often called
software reengineering, must be conducted to enable the software
to serve the needs of its end users. In essence, preventive maintenance
makes changes to computer program so that it can be more easily
corrected, adapted, and enhanced.
Metrics For Maintenance
The software maturity index (SMI) provides an indication of the
stability of a software product (based on the changes that occur
for each release of the product). The following information is determined:
MT = the number of modules in the current release
Fc = the number of modules in the current release that have been
changed
Fa = the number of modules in the current release that have been
added
Fd = the number of modules from the preceding release that were
deleted in the current release
The software maturity index is calculated in the following manner:
SMI = [MT - (Fa + Fc + Fd)]/ MT
As SMI approaches 1.0, the product begins to stabilize. SMI may
also be used as metric for planning software maintenance activities.
The mean time to produce a release of a software product can be
corrected with SMI and empirical models for maintenance effort can
be developed.
|