Software maintenance is the process of carrying out modifications in a software post delivery, with the aim of fault rectification and improvement in performance. Now considered a crucial part of SDLC, software maintenance helps in easy adaptability of a software product to a different environment with its set of changed requirements.
What Triggers the Need for Software Maintenance?
Vagaries of Market: A number of factors such as legislations pertaining to user accessibility issues as were evident with the net neutrality debate, force companies to think out of the box as far as reaching for new markets in inaccessible areas is concerned. For example, facebook tried reaching rural customers by tweaking their app in the form of free basics.
In order to stay ahead in the competition, companies are persistently in the hunt to add more value to their products in the form of new features, add-ons and upgrades.
Changes in diverse platforms:
Every month our phones are inundated with requests to upgrade the versions of various different apps. Now in order to cater to the changes in the apps brought upon by these upgrades, your favourite browser would itself need an upgrade to work without any glitches.
Change in business ambitions:
At the time of expansion or company acquisition, business ventures the world over have to think of altering the scalability of their projects. This calls for modifications in the functionalities of the software applications so that they can work as smoothly as before, prior to transitioning to a new scale.
What are the Different Forms of Software Maintenance?
Corrective Maintenance: It involves modifications in the software product for rectification of problems discovered by the users.
Adaptive Maintenance: It is carried out with the help of up gradation of old product versions to keep it well in tune with the changing dynamics of the world of technology. This form of maintenance covers adaptation to platforms pertaining to both software and hardware configurations.
Preventive Maintenance: This includes preventive interference measures in the form of modifications to nip potential faults in the bud before they transform into significant problems in the future.
Perfective maintenance is necessary to improve the reliability of a software over a long period of time with the addition of improved features and new user requirements.
How is Software Maintenance Conducted?
Here is a general stepwise conduction of activities undertaken for software maintenance:
First and foremost, identification of all requirements is carried out, drawing inputs from user feedback and system logs.
If at all any modification is to be done, it has to be preceded by a thorough cost and impact analysis so as to check for any negative implications.
A set of requirement specification is created from the enlisted modifications.
In the need of modifications, the obsolete modules have to be replaced by new ones. These new modules are designed against the requirement specifications.
After the coding of new modules are created, test cases are generated for the subsequent unit and integration testing.
The potential issues from the user end are verified through user acceptability tests.
To take care of compatibility issues with different os versions, patch management with version control tools is executed. Final testing of the software takes place at the client site after installation.