Types of software maintenance: Software maintenance is the process of keeping a software system continuously updated to full-fill the user requirements. Software maintenance is a really important activity after the software is delivered to the end user.
But the process of software maintenance is really a challenging task because the maintenance process is risky and too expensive. There are various reasons for software maintenance. However, the most important reasons are listed below.
- With time, user requirements may changes.
- There may be some problems in the system or in the modules.
- To make some improvements in the system efficiency and output.
- Changes in hardware or software environment.
- To modify the internal components of the system.
- To test the system to verify that the changes are working correctly and efficiently.
- To remove any unfortunate outcome that may occur after the modification.
- To expand or make refinement to the software.
- To optimize the code to understand easily and run faster.
- To remove any anomaly from the system requirements.
Types of software maintenance:
The types of software maintenance can be classified into 4 categories – Corrective maintenance, Adaptive maintenance, Perfective maintenance & Preventive maintenance. Now, let’s discuss these 4 types of software maintenance in details.
As its name suggests, the corrective maintenance is done to correct the discovered problems or errors in different phases of the software system. The corrective maintenance is the activity which is performed to restore or recover a system to a stable working condition after any performance failure occurs.
This failure or error may be a logical error, coding error or may be any kind of design error.
Normally, corrective maintenance is an immediate maintenance process which is introduced immediately after any failure is detected in the system. This immediate maintenance procedure is also known as patching. Since patching is done in a really short amount of time, so it lacks the proper and detailed analysis of the error. So patching may give rise to some unexpected error in the future if it is not done very carefully.
Adaptive maintenance basically deals with changing in program functions. It is performed when there are some external changes in the environment occurs. These external changes may occur due to any hardware-software changes or any government rule, business policy changes.
For example, a particular software was developed to calculate the taxes on profits of a company after deducting the dividend on equity shares. But after some period, the government has issued a new rule that the dividend should be included in the company profit for the tax calculation.
So, to adopt these changes, the software should be updated and the changes should be made in a particular function. In these types of case, adaptive maintenance is necessary.
The perfective maintenance is done to fine-tune a software product to its perfect level. It’s basically enhancing an existing software system to meet the end user’s new requirements or additional changing needs. These enhancements are done by the maintenance engineers by upgrading and modifying the software modules.
For example, earlier in a sub-office, the official data were sent to headquarters via magnetic media. But after the sub-offices and headquarters are linked via a leased line, now they can use these leased lines to interchange data to headquarters or from headquarters.
Therefore in this situation, the pre-existing software is needed to be enhanced to send the data via the leased line. So, in this case, perfective maintenance is to be done to the existing software to enhance its performance.
Since maintenance procedure is very time consuming and very costly but also it is very essential, so some great efforts are really needed to reduce its cost. The best possible way to reduce the costs of maintenance is going through maintenance management or some software modification audit. Software modification is simply the system level up-gradation by rewriting the programs.
It is a kind of preventing a system being out of date. By applying preventive maintenance we recover a working software system from entering into an obsolete state. Preventive maintenance follows the two important concepts of software engineering – re-engineering & reverse engineering.
The concept of re-engineering and reverse engineering includes the tasks like – optimization of existing code, updating the software documentation or sometimes re-structuring the software modules.
Using these two concept, an old software having some old features and technology is re-engineered with some really new technology – which is now up to date and can produce great performance than the old system.
The preventive maintenance also makes the current system easier for the future – So that in future the maintenance can be easily implemented and the system can adopt the future maintenance in less difficulty.