Software maintenance
- Process of modifying and updating a system software after it has been delivered to the customer
- Its a continuous process that occurs throughout the life cycle of a software system
- Goal : Keep the software system working correctly, efficiently, securely and to ensure that it continues to meet user needs
- fixing bugs
- adding new features
- improving performance
- adapt to new hardware/software
- its important to consider the cost and effort required to maintain a software while planning it
- its important to have a well defined maintenance process in place , including validation and testing, version control.
Types of Maintenance
1. Corrective Maintenance
fixing errors and bugs in the software system Patching: It is an emergency fix implemented mainly due to pressure from management
2. Adaptive Maintenance
modifying the SW system to adapt to its environment changes e. g Changes in government policies, business rules, hardware, software etc. example : Pay TM adding UPI to replace pay TM wallet after it was introduced
3. Perfective Maintenance
improving performance , functionality, reliability and restructuring SW system to improve changeability. towards perfection.
4. Preventive maintenance
Modification and updates to prevent future problems with the software
Advantages
1. Cost saving
Regular software maintenance can help to prevent larger, more expensive problems from occurring
2. Extended Software Life
extend the life of the software, allowing it to be used for longer periods of time and reducing the need for costly replacements
3. Improved Software Quality
Ensure the SW is functioning correctly and efficiently and that it continues to meet the needs of the users
4. Enhanced Security
Security patches against potential threats
5. Increased User Satisfaction
Regular software maintenance helps to keep the software up-to-date
Disadvantages of Software Maintenance
1. Cost
can be time-consuming and expensive, and may require significant resources and expertise
2. Schedule disruptions
Can cause disruptions to the normal schedule and operations of the software, leading to potential downtime and inconvenience
3. Complexity
Maintaining and updating complex software can cause problems
4. Compatibility issues
Can cause compatibility issues with other hardware or software leading to integration problems
5. Lack of documentation
Lack of documentation can make maintenance more difficult and more time consuming