Software Maintenance: Understanding the 4 Main Types Cache Merrill Read more posts by this author. Cache Merrill 30 Apr 2019 • 4 min read What is software maintenance? Software maintenance will be needed periodically as hardware systems are affected by pollution, weather, and atmospheric conditions. Since software systems often have dependencies within their working environment, the software will eventually lose its value if it does not undergo a maintenance task, regular qa and support is required for optimal performance. Here are a few examples that can cause a software system to lose its value:A website that validates authentic users using Google authentication stops working because Google modifies its authentication protocol.An instant messaging application becomes obsolete when a competitor releases a better messaging application.The software that manages sales and orders in a company is not working properly because its compatible hardware is obsolete.An application requires integration with new interfaces.Operating Systems get updated and your software needs to be updatedIOS or Andriod updates and your app needs to be updated New Security warnings go out and you need to patch your application to be protected. To deal with these changing technologies and business environments, software maintenance is necessary.Software maintenance is the process of modifying and updating the software according to the customer’s requirements. Its purpose is to correct the fault and improve the software performance after it has been delivered to the customers.Software Maintenance: Why is it necessary?To fix the bugs and errors in the software system.To improve the functionality of the software to make your product more compatible with the latest marketing and business environments.To remove outdated functions from your software that is inhibiting your product efficiency.To improve your software performance.Types of software maintenance1. Corrective Software MaintenanceSoftware defects arise due to errors and faults in the design, logic, and code. Corrective maintenance (commonly referred to as “bug fixing”) addresses these errors and faults in your software system.Corrective changes in the software are required when:Software is not working the way it is expected due to some acute issues, such as faulty logic flow, incorrect implementation, invalid or incomplete tests, etc.The software issues affect users after you have released the software.Most commonly, users create bug reports and send them as feedback to the company that designed the software. The company’s developers and testers then review the code and make corrective changes to the software accordingly. The purpose of bug reports is to enhance and improve the software.If you detect and resolve the flaws in the software before users discover it, then the maintenance action is preventive or adaptive. However, if you fix the problem after getting bug reports from the user’s side, then it is corrective maintenance action.If you are spending the majority of time dealing with corrective maintenance task then pay attention to the following:-Adopt a robust testing practice.Develop high-quality code.Focus on the correct implementation of the design specification.Enhance your ability to anticipate the problems.2. Adaptive Software MaintenanceAdaptive maintenance aims at updating and modifying the software when:The platform in which your software operates is changing (due to technology, laws, policies, rules, operating system,etc.)Your customers need the product to interface with new hardware or software.You have predicted defects in the software that will affect your customers in the future.Suppose you are running a web application and find that it is incompatible with a new version of Chrome's web browser through a pre-release beta version for developers. If you address this compatibility issue in your web application before the final stable release of Chrome, then you are performing an adaptive software maintenance task.However, if you wait for a stable release of the new version of Chrome, your customers will run into issues. Then the changes you perform after that to fix those issues is corrective maintenance task. It’s better to perform adaptive maintenance action quickly because delaying it will lead you to perform corrective maintenance later, which is a costly approach.Note that if you are modifying the environment in which your software lives, then it will trigger changes within other parts of your software as well. For example, updating the server, processors, compilers, etc. will also affect the functionality of your software.3. Perfective Software MaintenancePerfective software maintenance is performed when you update the software system to improve its value, according to user demands. This includes:Speed optimizationImprovement in user interfacesImprovements in software usabilityEnhancement of software functionalityImprovement in software performanceSome key points about Perfective software maintenance:It involves making enhancements in software functionality by implementing new or changed user requirements (even when the changes are not considered a defect, error or fault).It is often, but not always, initiated by customer feedback.It accounts for 50% of all the maintenance activities.Examples of perfective maintenance include modifying an ERP (Enterprise Resource Planning) program to include a new payment settlement feature in a software system.4. Preventive Software MaintenancePreventive maintenance is a software change you make to prevent the occurrence of errors in the future. It increases the software maintainability by reducing its complexity. Preventive maintenance task include:Updating the documentation: Updating the document according to the current state of the system.Optimizing the code: Modifying the code for faster execution of programs or making efficient use of storage space.Reconstructing the code: Transforming the structure of the program by reducing the source code, making it easily understandable.Difference between adaptive and preventive maintenance Understanding the difference between adaptive and preventive maintenance can be difficult sometimes. To know the difference between these two maintenance tasks, read the following:Preventative maintenance is a natural consequence of software evolution.Staying on top of changing software trends will ensure continuing efficiency of your platform as well as present the best impression to your clients.Adaptive Maintenance allows your business to adjust the platform needs to changing software specifications. As your technology outlook grows and scales, adaptive maintenance ensures that your technology stack keeps up with your growth.Whether your upcoming plans call for preventive or adaptive maintenance, you can rest assured that our software experts have worked in one, the other, and sometimes combinations of the two. LinkedIn Twitter Email