SOFTWARE MAINTENANCE Notes
SOFTWARE MAINTENANCE Notes
Maintenance is any activity or a change that you do to the already developed software.
In Software also there are two phases. One is the Development Phase and the Other is
Maintenance Phase.
So once the software is developed and properly tested, the software will be packaged and
deployed in the client's environment.
The End users start working on the software. The End users might come up with many new
requests.
For example, we might need to have a change of an environment or a new policy for the already
deployed software Or He might even find some existing bugs in the software.
Change is inevitable. Nothing in this world is permanent except change. It’s applicable for s/w
also. Changes to a s/w can occur in any time. When the s/w is in operation, it might need to be
modified for correcting existing errors or to improve its performance or any other non-functional
reqmt. After the software is deployed in the client environment, client may come with new
requirement or changes to the existing requirements.
Changes to a s/w is inevitable. These changes may be due to one of the following reasons.
-After deployment, new requirements emerge
-Business environment changes
-Existing errors might need to be corrected
-Software might need to be adapted to new technological upgrades
-Performance or reliability needs to be improved.
Note: Changes are incorporated either by modifying existing components or by adding new
components to the system
Normally major changes to the system’s architecture will not be required to be made in
maintenance phase.
Corrective: concerned with fixing errors that are observed when the software is in use.
For Example, the XYZ Software Company developed Billing software to Z Department Store.
When the biller, puts the bill he finds that for the entire customer the bill amount was
approximated to 10 decimal points whereas the actual requirement is for 2 decimal point.
Customer comes back to XYZ to fix the existing defect. This is corrective maintenance.
Adaptive: involves adapting the software to changes in the working environment.
It is concerned with the changes to be made to software to make it adaptable to a new
environment E.g. Run the software on a new operating system. Here Environment also refers to
certain external influence on the system like government policies.
For Example: The Government recently changed the VAT rate to x%. This change means that
many organisations had to make alterations to their systems.
Perfective: involves making functional enhancements to the system which can increase the
system's performance even when the changes have not been suggested by faults.
Example: A report is generated for the sales in the excel format. In addition to it, for better
understanding, a report is generated to represent the sales in graphical manner.
Preventive: changes made to the system to prevent occurrence of errors in future. That is to
prevent problems before they occur. EX: Y2K problem
When a change request comes, CCB first does an impact analysis where the change is either
accepted or rejected. If the change is accepted then it moves to the system release planning
where change requests is analysed and mapped to a particular type of maintenance
The changes are then implemented and released.
Maintenance cost:
-Maintenance costs are greater than the development cost
-It is affected by both technical and non-technical factors.
-This cost increases as software is maintained.
-We say so because; the structure of the software will be corrupted in maintenance. So making
further maintenance will be more difficult thereby increasing the cost.
-Aging software can have high support costs (e.g. old languages, compilers etc.).
To consolidate, few Maintenance Examples are
-Y2K : many, many systems had to be updated language analysers (find where changes need to
be made)
-Anti-Virus Software: don't usually have to update software, but must send virus definitions
-Operating System Patching: Microsoft, Apple, Linux/Unix. OS is core to use of computer, so it
must be constantly maintained