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.


  Java Alert Notification System Home Page

   Previous    Next