0% found this document useful (0 votes)
13 views26 pages

Software Maintenance Estimation Guide

This document discusses software maintenance estimation. It defines software maintenance as changes made to computer programs after delivery to customers. Maintenance includes corrective, adaptive, perfective, and enhancement activities. The document notes that software maintenance typically costs around 50% of the total software lifecycle cost. It also outlines various software maintenance activities and associated costs, such as defect repairs, error-prone module removal, customer support, code restructuring, and migration across platforms. Models for estimating the distribution and costs of these various maintenance activities are presented.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views26 pages

Software Maintenance Estimation Guide

This document discusses software maintenance estimation. It defines software maintenance as changes made to computer programs after delivery to customers. Maintenance includes corrective, adaptive, perfective, and enhancement activities. The document notes that software maintenance typically costs around 50% of the total software lifecycle cost. It also outlines various software maintenance activities and associated costs, such as defect repairs, error-prone module removal, customer support, code restructuring, and migration across platforms. Models for estimating the distribution and costs of these various maintenance activities are presented.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Estimating Software

Maintenance

Arun Mukhija
Contents
ÿ What is Software Maintenance?
ÿ Facts and Figures
ÿ Maintenance Activities and Costs
ÿ Maintenance Estimation Models
ÿ Conclusion and Discussion

21.01.2002 Estimating Software Maintenance 2


What is Software
Maintenance?
ÿ “Changes that have to be made to
computer programs after they have been
delivered to the customer or user.” *
ÿ Software maintenance includes:
l Corrective maintenance
l Adaptive maintenance
l Perfective maintenance
l Enhancements (Although technically they are not a
part of software maintenance but, being a post-release
activity, are often considered a part of it)
* Martin J. and McClure G. “Software Maintenance: The Problem and its
Solutions”, Prentice Hall (1983).

21.01.2002 Estimating Software Maintenance 4


Facts and Figures
ÿ Software maintenance costs around 50%
of total software life-cycle cost.

ÿ But relatively little is known about the


software maintenance process and the
factors that influence its cost.

21.01.2002 Estimating Software Maintenance 6


Software Development and Maintenance
Costs in Large Organizations [Boehm81]
update and maintenance development
100
Present of 10-year life-cycle costs
80

60

40

20

0
Gereral USAF USAF General
Telephone Command command Motors
and Electronics and and control
control No.1 No.2

21.01.2002 Estimating Software Maintenance 7


Software Development and Maintenance
Costs in 487 Organizations [Boehm81]
60
49
Percent of total software effort 50
43

40

30

20

8
10

0
Maintenance Development Other

21.01.2002 Estimating Software Maintenance 8


Software Maintenance Production Function
[Boehm81]

21.01.2002 Estimating Software Maintenance 9


21.01.2002
Percent of software maintenance effort

0
10
20
30
40
50

Emergency program fixes 12.4

Routine debuging
9.3

Accommondate changings to input data,


17.4

files

Accommondate changings to hardware,OS


6.2

Enhancements fro users


41.8
[Boehm81]

Estimating Software Maintenance


Improve documentation
5.5
4

Improve code efficiency

Other
3.4

10
Distribution of Software Maintenance Effort
21.01.2002
percent of user enhancement effort

10
15
20
25
30
35
40
45

0
New reports 5
40.8

Added data for existing reports


27.1

Reformatting existing reports


10

Condensing existing reports


[Boehm81]

Estimating Software Maintenance


5.6

Consolidating exsting reports


6.4

Other
10.1
Distribution of User Enhancement Effort

11
Maintenance Activities
and Costs
ÿ Defect repairs
l keep software in operational condition
l costs absorbed by software supplier
l low pre-release defect removal efficiency (~85%)
l productivity = 8 defect repairs per month
(can be higher with experienced personnel and defect-tracking tools etc.)

Factors influencing defect repairs:


l Abeyant defects (10%) - based on unique combination of
events
l Invalid defects (15%) - misdiagnosed errors
l Bad fix injection (7%) - derivative errors
l Duplicate defects - multiple complaints about the same error
21.01.2002 Estimating Software Maintenance 13
ÿ Error-prone module removal
l concentration of errors in particular modules
l common among large poorly-structured systems
l expensive to maintain, due to high bad fix injection rate
l 500% more expensive than normal modules

ÿ Customer support
l interface between clients and defect repair teams
l effort depends on number of users
• with phone contact, 1 customer support person for 150 users
• with electronic contact, 1 customer support person for 1000
users

21.01.2002 Estimating Software Maintenance 14


ÿ Code restructuring
l done by automated tools to lower complexity levels
l lowering complexity eases maintenance
l precursor to other maintenance activities

ÿ Migration across platforms


l from one OS or hardware to another
l with well-documented specifications,
migration speed = 50 FP per month
l with missing or obsolete specifications,
migration speed = 5 FP per month

21.01.2002 Estimating Software Maintenance 15


ÿ Conversion to new architectures
l changes to interface or file structure of apps.
l quality of specifications affects productivity
l reverse engineering may need to be performed to
extract missing design info.

ÿ Mandatory changes
l in response to changes in law or policy
l involve high costs and tight schedules
l difficult to predict in advance

21.01.2002 Estimating Software Maintenance 16


ÿ Performance optimization
l to minimize delays in transactions
l improving performance at trouble spots

ÿ Enhancements
l adding new features as per user request
l funded by user
l annual rate = 7% increase in FP total of an app.
l high integration and testing costs for poorly structured
apps.

21.01.2002 Estimating Software Maintenance 17


Maintenance
Estimation Models
ÿ COCOMO Maintenance Model
for software maintenance effort estimation
(MM)AM = (ACT)(MM)DEV
(MM)AM : annual maintenance effort in man-month
(MM)DEV : development effort in man-month
ACT : annual change traffic (fraction of software that
undergoes change during a year)

For intermediate and detailed COCOMO,


(MM)AM = (EAF)M(ACT)(MM)NOM
(EAF)M : maintenance effort adjustment factor
21.01.2002 Estimating Software Maintenance 19
ÿ Maintenance/Development Cost Ratio

(MM)M = (M/D)(MM)DEV
(MM)M : overall life-cycle maintenance effort in man-month
(MM)DEV : development effort in man-month
M/D : maintenance/development cost ratio
Value of M/D ranges from 0.67 to 4.5, depending on
application type.

21.01.2002 Estimating Software Maintenance 20


ÿ Cards-per-person ratio
origin: number of cards each software person can maintain
(KDSI/FSP)M : KDSI maintained per full-time software person
(KDSI)DEV
(FSP)M = ------------------
(KDSI/FSP)M
(FSP)M : number of software maintenance personnel required
(KDSI)DEV : size of software in KDSI
Value of (KDSI/FSP)M ranges from 3 to 132, depending on
application type.
The annual maintenance effort (MM)AM is then simply
(MM)AM = 12 (FSP)M
21.01.2002 Estimating Software Maintenance 21
ÿ Maintenance Productivity Ratio
(DSI)MOD/YR = (ACT)(DSI)DEV
(DSI)MOD/YR
(MM)AM = ------------------
(DSI/MM)MOD
(DSI)MOD/YR : number of source instructions modified per year
(DSI)DEV : size of software in source instructions
(MM)AM : annual maintenance effort in man-month
ACT : annual change traffic
(DSI/MM)MOD : maintenance productivity ratio (number of source
instructions modified per man-month of maintenance effort)
Average value of ACT is 0.092 and of (DSI/MM)MOD is 241,
based on a survey. Estimating Software Maintenance
21.01.2002 22
Conclusion and
Discussion
ÿ “Software processes must produce software that
can be gracefully evolved at reasonable costs.
The choice of software architecture significantly
influences modifiability and hence maintainability.” *

ÿ Estimating maintenance is complex because of


the relationship between base application and
changes being made. Moreover predicting
adaptive maintenance and enhancements in
advance is very difficult.

* Richard D. Stutzke. “Software Estimating Technology: A Survey”,


CrossTalk (1996).

21.01.2002 Estimating Software Maintenance 24


References
ÿ [Jones98] Jones T.C. “Estimating Software
Costs”, McGraw Hill (1998).

ÿ [Boehm81] Boehm B. “Software Engineering


Economics”, Prentice Hall (1981).

21.01.2002 Estimating Software Maintenance 25

You might also like