Software
maintenance is
the software engineering
effort towards modification of a software
product
post delivery to correct bugs/errors/faults, improve upon performance
or other entities/attributes, or adapt to a changing/changed environ.
A common myth about software
application maintenance
is that it only involves fixing faults/errors. However, a study
carried out has indicated that more than
80% of application maintenance is
called and needed for non-corrective measures.
Apart
from corrective maintenance, we can have four other types of
application
maintenance services:
- Adaptive- modifying a software product post delivery to keep it in working mode in a changing / changed setting.
- Perfective- modifying a software product post delivery to improve maintainability and / or performance etc.
- Preventive- increasing software reliability to prevent problems envisaged to occur in future.
- Emergency- unscheduled and unforeseen corrective maintenance carried out to keep a software system up and operational.
Why is software / application maintenance necessary?
Software
maintenance
is looked upon by many as a necessary evil, but given the expertise
and right amount of professional help, you can turn it around into a
really good investment, which is exactly what it is.
In
fact, as we have already stated that 80% of the software cost is
maintenance; as per Robert Glass’s findings, about 60% of the
maintenance cost is improvement. We must keep in mind that the
software technology is developing at a much higher rate than in most
of the other fields and segments. This further implies that we must
always be prepared to keep our software up-to-date and relevant. And,
this is exactly why software
application maintenance
is called for in addition to other reasons.
The
first law of software engineering states that irrespective of your
position in the software system life cycle, changes will occur in the
system and the motivation to keep up with these changes will remain
through the lifecycle. This motivation results in the maintenance
effort and tries at times, to get ahead of the changes themselves.
In
short, software
maintenance is
a must for the following five reasons:
- Corrective – This kind of application maintenance is usually carried out to rectify the errors and bugs in the existing system which may include bad coding or a major system fault. Corrective maintenance may also be called for emergency situations that call for immediate unscheduled solutions to sudden unforeseen problems with the software on account of which the system may be down.
- Adaptive – Adaptive application maintenance services are undertaken to adapt the system to the changed environs and circumstances, thereby enhancing the software lifespan to a great extent.
- Perfective – In accordance with our aforementioned 80-60 rule, perfective maintenance (which is undertaken to enhance and improve upon the usability, performance and functionality of the software) accounts for approx. 60% of the total maintenance cost and effort.
- Preventive – Preventive software application maintenance looks to prevent future problems taking corrective measures in advance. In other words, it seeks to vaccinate the system and ensure pre-emptive strike towards software issues that could arise later on and the repair costs that come along.
- Legal and Business – It is just not enough to be able to compete but businessmen have to sync with the latest government and legal rules as also be in touch with the latest trends pertaining to the security and privacy of their clients/users. This again calls for adaptability and changes in keeping with the latest rules and regulations.
