The 4 Levels of Software Maintenance

Whatever business you’re in, something always has to be maintained. Have you ever heard of the 4 main pillars of maintenance for software? Well if you haven’t, we’re here to break it down for you. There is corrective, adaptive, perfective and emergency.

 

Corrective Maintenance

Corrective Maintenance is concerned with fixing errors that are observed when the software is in use. It deals with the defects found in day-to-day system functions. A defect is a quick fix and it can result due to errors in software design, logic and coding. Some design errors occur when certain changes made to the software are incorrect, incomplete and wrongly communicated. In the event of a system failure due to an error, quick actions are taken to restore the operation of the software system. The approach in corrective maintenance is to locate the original specifications in order to determine what the system was originally designed to do.

Adaptive Maintenance

Adaptive Maintenance is the change in the software that takes place to make the software adaptable to a new environment such as running the software on a new operating system. It consists of adapting certain software to changes in the environment such as the hardware or the operating system. The term environment refers to the outside conditions and the influences that act on the system. Some examples would be business rules, work patterns, and government policies.

Perfective Maintenance

Perfective Maintenance is implementing new or changed user requirements. It involves making functional enhancements to the system. In addition, it is also used to increase the system’s performance even when the changes have not been suggested by faults. This includes enhancing both the function and efficiency of the code and changing the functionalities of the system as per the users’ changing needs.

Preventive Maintenance

Preventive Maintenance involves performing activities to prevent the occurrence of errors. It tends to reduce the software complexity thereby improving the programs understandability which increases the software maintainability. It also comprises documentation updating, code optimization, and code restructuring. Updating the document involves modifying all the documents affected by the changes in order to correspond to the present state of the system. Code optimization involves modifying the programs for faster execution or efficient use of storage space.