Software maintenance

  1. Process of modifying and updating a system software after it has been delivered to the customer
  2. Its a continuous process that occurs throughout the life cycle of a software system
  3. Goal : Keep the software system working correctly, efficiently, securely and to ensure that it continues to meet user needs
  4. fixing bugs
  5. adding new features
  6. improving performance
  7. adapt to new hardware/software
  8. its important to consider the cost and effort required to maintain a software while planning it
  9. 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