Slides 9

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 26

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