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