Types of Software Maintenance

No matter what business it is that you run, buying a web solution and sitting back simply does not suffice anymore. Keeping up your web application with the developments that happen in the ever hulking world of Internet is as important as its inception itself. Let’s discuss about the whys and what’s of Software Maintenance…

Software Maintenance is that last step in the Software Development Life Cycle that does not get its fair share of attention. And we understand that. When people shed thousands of bucks on software, they expect it to conform to their needs – both present and future. Unfortunately though, that’s not possible – there number of reasons, why modifications are required, some of them are briefly mentioned below:

  • Market Conditions

    – Policies, which changes over the time, such as taxation and newly introduced constraints like, how to maintain bookkeeping, may trigger need for modification.

  • Client Requirements

    – Over the time, customer may ask for new features or functions in the software.

  • Host Modifications

    – If any of the hardware and/or platform (such as operating system) of the target host changes, software changes are needed to keep adaptability.

  • Organization Changes

    – If there is any business level change at client end, such as reduction of organization strength, acquiring another company, organization venturing into new business, need to modify in the original software may arise.

These basically can be categorized into four types of maintenance, namely, corrective, adaptive, perfective, and preventive.

 

Corrective maintenance

is concerned with fixing errors that are observed when the software is in use. It deals with the repair of faults or defects found in day-today system functions. A defect can result due to errors in software design, logic and coding. Design errors occur when changes made to the software are incorrect, incomplete, wrongly communicated, or the change request is misunderstood. Logical errors result from invalid tests and conclusions, incorrect implementation of design specifications, faulty logic flow, or incomplete test of data. All these errors, referred to as residual errors, prevent the software from conforming to its agreed specifications. Note that the need for corrective maintenance is usually initiated by bug reports drawn by the users.

In the event of a system failure due to an error, 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. However, due to pressure from management, the maintenance team sometimes resorts to emergency fixes known as patching.

Corrective maintenance accounts for 20{837330d4a8ef7eefea6ad76a2e6c839eeae477cba1366427bd0e21e978eaa9aa} of all the maintenance activities.

Adaptive maintenance

is concerned with the change in the software that takes place to make the software adaptable to new environment such as to run the software on a new operating system. It consists of adapting software to changes in the environment such as the hardware or the operating system. The term environment in this context refers to the conditions and the influences which act (from outside) on the system. For example, business rules, work patterns, and government policies have a significant impact on the software system.

For instance, A bank decides to offer a new mortgage product. This will have to be included in the system so that mortgage interest and payments can be calculated or the Government recently changed the VAT rate from x{837330d4a8ef7eefea6ad76a2e6c839eeae477cba1366427bd0e21e978eaa9aa} to y{837330d4a8ef7eefea6ad76a2e6c839eeae477cba1366427bd0e21e978eaa9aa}. This change meant that many organizations had to make alterations to their systems.

Adaptive maintenance accounts for 25{837330d4a8ef7eefea6ad76a2e6c839eeae477cba1366427bd0e21e978eaa9aa} of all the maintenance activities.

Perfective maintenance

is concerned with implementing new or changed user requirements. It involves making functional enhancements to the system in addition to the activities 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.

Examples of perfective maintenance include Re-organizing data sets within a database so they can be searched faster or use less storage or providing shortcuts commands that experts can use instead of the slower standard menu system.

Perfective maintenance accounts for 50{837330d4a8ef7eefea6ad76a2e6c839eeae477cba1366427bd0e21e978eaa9aa}, that is, the largest of all the maintenance activities.

Preventive maintenance

involves performing activities to prevent the occurrence of errors. It tends to reduce the software complexity thereby improving program understand-ability and increasing software maintainability. It comprises documentation updating, code optimization, and code restructuring. Documentation updating involves modifying 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. Code restructuring involves transforming the program structure for reducing the complexity in source code and making it easier to understand.

Preventive maintenance is limited to the maintenance organization only and no external requests are acquired for this type of maintenance.

Preventive maintenance accounts for only 5{837330d4a8ef7eefea6ad76a2e6c839eeae477cba1366427bd0e21e978eaa9aa} of all the maintenance activities.

Author: Abasaheb Sangle.

Related Posts

Privacy Preferences
When you visit our website, it may store information through your browser from specific services, usually in form of cookies. Here you can change your privacy preferences. Please note that blocking some types of cookies may impact your experience on our website and the services we offer.