10 Software Maintenance
10 Software Maintenance
MAINTENANCE
1
Software Maintenance
Software maintenance is often considered to be
an unpleasant, time consuming, expensive and
unrewarding occupation - something that is carried out
at the end of development only when absolutely
necessary
Modification of a software product after delivery, to
correct faults, to improve performance or other
attributes, or to adapt the product to a modified
environment
13
The maintenance process
Maintenance is triggered by change
requests from customers or marketing
requirements
Changes are normally batched and
implemented in a new release of the system
Programs sometimes need to be repaired
without a complete process iteration but this
is dangerous as it leads to documentation
and programs getting out of step
14
The maintenance process
15
Change processes
16
System documentation
Requirements document
System architecture description
Program design documentation
Source code listings
Test plans and validation reports
System maintenance guide
17
Users
Interact with
the System
Maintainer Users
corrects Identify
problems Problem
and makes s&
improvemen Improve
ts ments
18
Types of Software Maintenance
In order for a software system to
remain useful in its environment it may be
necessary to carry out a wide range of
maintenance activities upon it. Swanson
(1976) was one of the first to examine
what really happens during maintenance
and was able to identify three different
categories of maintenance activity:
19
Corrective
Changes necessitated by actual errors
(defects or residual "bugs") in a system
are termed corrective maintenance. These
defects manifest themselves when the
system does not operate as it was
designed or advertised to do.
20
Adaptive
Any effort that is initiated as a result of
changes in the environment in which a
software system must operate is termed
adaptive change. Adaptive change is a
change driven by the need to accommodate
modifications in the environment of the
software system, without which the system
would become increasingly less useful until
it became obsolete.
21
Perfective
The third widely accepted task is that of perfective
maintenance. This is actually the most common type of
maintenance encompassing enhancements both to the
function and the efficiency of the code and includes all
changes, insertions, deletions, modifications, ex
tensions, and enhancements made to a system to meet
the evolving and/or expanding needs of the user. A
successful piece of software tends to be subjected to a
succession of changes resulting in an increase in its
requirements. This is based on the premise that as the
software becomes useful, the users tend to experiment
with new cases beyond the scope for which it was
initially developed. Expansion in requirements can take
the form of enhancement of existing system 22
Corrective
maintenance
(17%)
Adaptive
maintenance Perfective
(18%) maintenance
(65%)
24
SOFTWARE PROCESS
AND
PROJECT METRICS
25
Software process and project metrics are
quantitative measures that enable software engineers
to gain insight into the efficiency of the software
process and the projects conducted using the process
framework.
In software project management, we are primarily
concerned with productivity and quality metrics. The
four reasons for measuring software processes,
products, and resources (to characterize, to evaluate,
to predict, and to improve).
Software metrics refers to a broad range of
measurements for computer software. Measurement
can be applied to the software process with the
intention of improving it on a continuous basis.
Measurement can be used throughout the software
project to assist in estimation, quality control, etc
26
Within the context of software project
management, we are concerned primarily with
productivity and quality metrics.
30
Project Metrics
Software process metrics are used for strategic purpose, project
31
Software Measurement
Measurement in the physical world can be categorized into two:
32
Software Measurement
Indirect measures of the product include functionality, quality,
33
Function Oriented Metrics
Function oriented metrics use a measure of the functionality
34
Extended Function Point Metrics
Function point measure was originally designed to be
35