Types of software maintenance

Mon, 03/11/2019 - 11:01

Software cannot be only about the creation, it requires a constant support. The fact is that software is always in the stage of development. There may be a lot of reasons for the evolution of your software: maintaining the software in working condition, updating it to the latest version, expanding the function or convenience in improving it in the future. No matter what, its change is crucial for development and success.

You know that your software will undergo various changes but you also need to understand that software is not just a ‘bug’ fix. The study showed that more than 80% of changes in software are associated with changes that are not related to errors.

There are four types of software changes:

  • Corrective;
  • Adaptive;
  • Perfective;
  • Preventive.

Corrective maintenance

This type of changes eliminates errors and failures in your software that can affect various areas, such as design, logic or code. Often, all these changes are due to error messages that were created by the user. It needs to underline that very often these problem reports speak only about improving the software system but not about fixing the 'bugs'.

Adaptive maintenance

Adaptive changes mean the changes in the environment in which your software lives. They can be caused by changes in the operating system, hardware, software dependencies, organizational business rules, policies, etc. These changes may also cause changes in other parts of your software, for example, updating the server, compilers, etc. Need to be mentioned that changing the providers of delivery services and payment systems may affect the functionality of your software.

Improving maintenance

There are changes that are directly related to the requirements and functions of your software they are called perfective. When your software becomes available to users the very first thing they will think about is the implementation of different ways to expand the system or suggest new features that they would like to see as part of the software, which in turn may be a future improvement of the system. Also, the perfective changes include the removal of various functions that are redundant, inefficient, or non-functional. It is 50–55% of most maintenance work associated with the changes.

Preventive maintenance

These changes are designed to improve the understanding of your software in the long term perspective.

Preventive changes give a second life to the system. Restructuring, code optimization and documentation updates are common preventive changes. The preventive changes reduce the number of unpredictable effects that software can have in the long term and help it become scalable, stable, understandable and maintainable.


Software maintenance is an essential part of the software development life cycle. It is necessary for the success, development and advancement of your system. Software maintenance is beyond the scope of fixing 'bugs' which is just one of four types of software changes. Updating the software environment, reducing its run-out over time, and expanding opportunities to meet user needs are all examples of maintenance work. The next time you think about maintaining and replacing software just keep in mind that this is much more than fixing 'bugs'.


Back to Blog Listing