Vous êtes sur la page 1sur 15

Software Maintenance

Jacklyn Ancog
Kimberly Alcoy

What is maintenance?
Not just "fixing mistakes
Any post-delivery modification to
an existing system

Software Maintenance
The process of modifying a
software system or component
after delivery to correct faults,
improve performance or other
attributes, or adapt to a changed
environment.

Software Maintenance
Software maintenance can consume
as much as 90% of the total effort
expended on a system in its lifetime.
Failures continue to be discovered in
software for years.
Often first job upon graduating is
maintenance.

Why so much maintenance?

Software is a model of reality. Reality changes.

If software is found to be useful, satisfied users want


to extend the functionality of the system.

Software is much cheaper to change than


hardware. As a result, changes are made in software
wherever possible.

Successful software survives well beyond the lifetime


of the hardware for which it was written. Software
need to be modified to run on new hardware and
operating system.

Why modifications are required?

Market Conditions - Policies, which changes over the


time, such as taxation and newly introduced constraints
like, how to maintain bookkeeping, may trigger need for
modification.

Client Requirements - Over the time, customer may ask


for new features or functions in the software.

Host Modifications - If any of the hardware and/or


platform (such as operating system) of the target host
changes, software changes are needed to keep
adaptability.

Organization Changes - If there is any business level


change at client end, such as reduction of organization
strength, acquiring another company, organization
venturing into new business, need to modify in the original

Types of maintenance
1. Corrective Maintenance. This
includes
modifications
and
updations done in order to
correct or fix problems, which
are either discovered by user or
concluded by user error reports.

Types of maintenance
2. Adaptive Maintenance. This
includes
modifications
and
updations applied to keep the
software product up-to date and
tuned to the ever changing
world
of
technology
and
business environment.

Types of maintenance
3. Perfective Maintenance. This
includes
modifications
and
updates done in order to keep the
software usable over long period
of time. It includes new features,
new
user
requirements
for
refining the software and improve
its reliability and performance.

Types of maintenance
4. Preventive Maintenance. This
includes
modifications
and
updations to prevent future
problems of the software. It aims
to attend problems, which are
not significant at this moment
but may cause serious issues in
future.

Distribution of maintenance activities

corrective 21%

perfective 50%
adaptive 25%
preventive 4%

SE, Maintenance, Hans van Vliet, 2008

Structured vs Unstructured
Maintenance
Unstructured maintenance wades straight into
the source code and makes changes based on
that alone
Structured maintenance examines and modifies
the original design, and then reworks the code
to match it
Clearly structured maintenance is a more
reliable and (usually) a more efficient process
Unfortunately, it's not always possible

Why so expensive?
Team stability
Contractual responsibility some
developers are not responsible for
maintenance

Staff skills newbie, unskilled


Program age and structure

Maintenance side-effects
Any error or undesirable behavior that occurs as a
result of modifications to a system.

Coding side-effects (inadvertent removal of vital


code, changes in semantics of code, unexpected
changes in execution path)
Data side-effects (changes in data structures
render older data invalid or incomplete, changes in
global constants, changes in data ranges)
Documentation side-effects (forgetting to
document code or data structure changes,
changes not reflected in user manuals or interface)

Summary
most of maintenance is (inevitable) evolution

Maintenance problems:

Unstructured code
Insufficient knowledge about system and domain
Insufficient documentation
Bad image of maintenance department

Lehmans 3rd law: a system that is used, will change


Software application maintenance is a critical part of any
business. As needs for business changes periodically,
application system designed to manage business
efficiently also needs to be changed besides additional
features are required to be integrated to manage the
changes.

Vous aimerez peut-être aussi