v Necessity of software maintenance:
Software maintenance is becoming an important activity of a large
number of software organizations. This is no surprise, given the rate of
hardware obsolescence, the immortality of a software product per se, and the demand
of the user community to see the existing software products run on newer platforms,
run in newer environments, and/or with enhanced features. When the hardware
platform is changed, and a software product performs some low-level functions,
maintenance is necessary. Also, whenever the support environment of a software
product changes, the software product requires rework to cope up with the newer
interface. For instance, a software product may need to be maintained when the
operating system changes. Thus, every software product continues to evolve
after its development through maintenance efforts. Therefore it can be stated
that software maintenance is needed to correct errors, enhance features, port
the software to new platforms, etc.
v Types of software maintenance
There are
basically three types of software maintenance. These are:
• Corrective: Corrective maintenance of a
software product is necessary to rectify the bugs observed while the system is
in use.
• Adaptive: A software product might need maintenance
when the customers need the product to run on new platforms, on new operating systems,
or when they need the product to interface with new hardware or software.
• Perfective:
A software product needs
maintenance to support the new features that users want it to support, to
change different functionalities of the system according to customer demands,
or to enhance the performance of the system.
v Problems associated with software maintenance:
Software maintenance work
typically is much more expensive than what it should be and
takes more time than required. In software organizations, maintenance work is mostly carried out using ad hoc
techniques. The primary reason being that
software maintenance is one of the most neglected areas of software engineering. Even though software maintenance
is fast becoming an important area of
work for many companies as the software products of yester years age, still software maintenance is mostly being
carried out as fire-fighting operations, rather
than through systematic and planned activities.
Software maintenance has a very
poor image in industry. Therefore, an organization often cannot employ bright
engineers to carry out maintenance work. Even though maintenance suffers from a
poor image, the work involved is often more challenging than development work.
During maintenance it is necessary to thoroughly understand someone else’s work
and then carry out the required modifications and extensions.
Another problem associated with
maintenance work is that the majority of software products needing maintenance
are legacy products.
No comments:
Post a Comment