Software Maintenance

Software is supposed to cover a user’s necessity and satisfy its requirements. For doing this, the software is supposed to evolve as the necessity itself evolves and new requirements start to surface. The process of finding new necessities and improving the software through time is called maintenance.

The purpose of maintenance is to:

  • Correct faults
  • Improve the design
  • Implement enhancements
  • Interface with the software
  • Adapt programs so that different hardware, software, system features, and telecommunications facilities can be used
  • Migrate legacy software
  • Retire software

The main characteristics of the maintainer’s activities are:

  • Maintaining control over the software’s day.-to-day functions
  • Maintaining control over software modifications
  • Perfecting existing functions
  • Identifying security threats and fixing the vulnerabilities
  • Preventing software performance from degrading


Types of maintenance

  1. Corrective maintenance: Correct discovered problems. It also covers emergency maintenance
  2. Adaptive maintenance: Performed after delivery to be sure that software remains effective
  3. Perfective maintenance: Modifications of a software after delivery to detect errors and latent faults.


Maintenance Processes

Software maintenance activities include:

  • Process implementation
  • Problem and modification analysis
  • Modification implementation
  • Maintenance review/acceptance
  • Migration
  • Software requirement