Program Maintenance

Program maintenance is the process of modifying a software or program after delivery to achieve any of these outcomes −

  • Correct errors
  • Improve performance
  • Add functionalities
  • Remove obsolete portions

Despite the common perception that maintenance is required to fix errors that come up after the software goes live, in reality most of the maintenance work involves adding minor or major capabilities to existing modules. For example, some new data is added to a report, a new field added to entry forms, code to be modified to incorporate changed government laws, etc.

Types of Maintenance

Maintenance activities can be categorized under four headings −

  • Corrective maintenance − Here errors that come up after on-site implementation are fixed. The errors may be pointed out by the users themselves.

  • Preventive maintenance − Modifications done to avoid errors in future are called preventive maintenance.

  • Adaptive maintenance − Changes in the working environment sometimes require modifications in the software. This is called adaptive maintenance. For example, if government education policy changes, corresponding changes have to be made in student result processing module of school management software.

  • Perfective maintenance − Changes done in the existing software to incorporate new requirements from the client is called perfective maintenance. Aim here is to be always be up-to-date with the latest technology.

Maintenance Tools

Software developers and programmers use many tools to assist them in software maintenance. Here are some of the most widely used −

  • Program slicer − selects a part of the program that would be affected by the change

  • Data flow analyzer − tracks all possible flows of data in the software

  • Dynamic analyzer − traces program execution path

  • Static analyzer − allows general viewing and summarizing of the program

  • Dependency analyzer − assists in understanding and analyzing interdependence of different parts of the program