Dumitru Radoiu
P j
Project
0
IS Project
j Management
g
Project Planning
Estimation t, $
Planning
Project Development
Execution of Vision
Coordination
Outsourcing
O
i
Risk management
HR, Time, Cost, Mngm
j Closingg
Project
Project Evaluation
An IT Solution
IS Dev Models
time
IS Dev Technology
gy
Life cycle
IS Architectures (e.g.SOA)
Spiral
Prototype
4GT
RAD
XP
RUP
A d
Agenda
A. What and how to estimate?
- size
- effort
- schedule
- cost
Project Size
Project Type
Operational
Model
Selection
Development Model
Effort
Duration
Cost
Development Model
Project
Size
LARGE
MEDIUM
WATERFALL
ITERATIVE
ITERATIVE &
INCREMENTAL
SMALL
VERY
SMALL
Not recommended
Not recommended
Not recommended
Not recommended
Not recommended
Large
Medium
Requirements
Requirement Analysis
Requirement Analysis
Analysis
Design
Development
Design
Delivery
C di
Coding
& Unit
U it TTesting
ti
I t
Integration
ti
/ System
S t
Testing
T ti
A
Acceptance
t
Test
T t
Integration Testing
Delivery
System Testing
Acceptance Test
Delivery
Implementation Support
Acceptance Test
Post Implementation
Support
Implementation Support
Post Implementation
p
Support
E ti ti Size
Estimating
Si
By analogy:
A.
B.
E ti ti Effort
Estimating
Eff t
Direct estimation:
Based on historical data (same expertise, same tools, etc)
Step1: Chose a software development process you follow (e.g. RUP or DSDM)
Step2:
p Identify
y all sub-processes
p
((e.g.
g biz. modeling,
g, business req.,
q , design,
g , coding,
g, etc))
Step3: Estimate the Effort for all sub-processes by analogy
Step4: Sum up
OR
Indirect Estimation: Derive Effort from Size:
Use a generally accepted algorithmic approach
a.
Barryy Boehms COCOMO model COCOMO = COnstructiveCOstMOdel
b. Putnam Methodology
E ti ti Schedule
Estimating
S h d l
Estimate the project schedule from the effort estimate:
-
Staffing profile:
A.
B.
The p
pregnant
g
woman p
paradox:
If a woman delivers a baby in 9 months, it follows 9 women deliver a baby in one
month.
E ti ti Cost
Estimating
C t
Direct estimation of cost :
Labor
HW
SW licenses
Travel
Testing
Communication
Trainingg
Office Space, and so on.
Often, a software development project manager will only estimate
Labor cost
Organization
g
overhead (average)
(
g )
Project budget
A d
Agenda
A. What and how to estimate?
- size
- effort
- schedule
- cost
A d
Agenda
A. What and how to estimate?
- size
- effort
- schedule
- cost
Of these models, COCOMO is most widely used, and will suffice if there is
y out activity-based
y
cost estimation.
insufficient data to carry
Intermediate size
Mixed experience team
Medium complexity
Some parts familiar
S
Some
requirements
i
t are rigid
i id
Basic COCOMO
Static single valued model that calculates software development effort and
cost as a function of program size
Effort = constant1 * (Size)constant2
[Effort] = person x month
S hed le = constant3*(Effort)
Schedule
t t3*(Eff t)constant4
[Schedule] = chronological months
The proposed constants (Boehm) vary depending on the class of the project
Software Project
Constant1
Constant2
Constant3
Constant4
Organic
2.4
1.05
2.5
0.38
Semidetached
3.0
1.12
2.5
0.35
Embedded
3.6
1.20
2.5
0.32
Basic COCOMO
Software Project
Effort
Development Time
Organic
Effort=2.4*(Size)1.05
Schedule=2.5*Effort0.38
Semidetached
Effort=3.0*(Size)
Effort=3
0*(Size)1.12
Schedule=2.5*Effort
Schedule=2
5*Effort0.35
Embedded
Effort=3.6*(Size)1.2
Schedule=2.5*Effort0.32
Basic COCOMO
Observations:
oThe definition of a line of code is not critical
oThe values of the constants could be modified
oThe model assumes requirements will not change significantly during development
oThe model assumes the project will be well managed by both the customer and the
developer.
Basic COCOMO
Example 1. For an organic mode software project with an estimated size
of 32,000 deliverable lines of code
Effort = 2.4(32)
2 4(32)1.05 = 91 person months
months.
Schedule = 2.5(91)0.38 = 14 months.
A
AverageNrPersons
NP
= 91/14 = 66.5
5 persons.
The pproductivityy of pprogrammers
g
is predicted
p
to be 352 LOC/person-month
p
or
about 16 LOC/day.
Basic COCOMO
Example 2. For a large embedded mode software project consisting of an
estimated 128,000 deliverable lines of code
Effort = 3.6(128)
3 6(128)1.2 = 1216 person months
months.
Scedule = 2.5(1216)0.32 = 24 months
A
AverageNrPersons
NP
= 1216/24 = 51 persons.
The ppredicted programmer
p g
productivity
p
y is about 105 LOC/month or about 4
LOC/day.
Basic COCOMO
Observations:
These estimates are consistent with productivity estimates from other
research.
The model also gives a minimum project duration which is dependent on
effort rather than the number of software engineers working on the project.
This is consistent with the experience that adding staff to a project which is
behind schedule will not help.
The model does not predict the result of using less staff over a longer
period of time.
ai
bi
Organic
3.2
1.05
Semidetached
3.0
1.12
Embedded
2.8
1.20
Low (size of DB (in bytes) is less than 10 times the code size (in lines of
code)), through nominal (10x to 100x) to very high (>1000x)
3.
Complexity
p
y of the project
p j
1. Product Attributes
Product Attribute
Cost Driver
Very
Low
Low
Nomin
al
High
Very
High
Extra
High
S/W Reliability
0 75
0.75
0 88
0.88
10
1.0
1 15
1.15
14
1.4
Database Size
0.94
1.0
1.08
1.16
Project
Complexity
0.7
0.85
1.0
1.15
1.3
1.65
Hardware
Attribute Cost
Di
Driver
Very
Low
Low
Nomin
al
High
Very
High
Extra
High
Run time
1.0
1.11
1.3
1.66
1.0
.0
1.06
.06
1.21
.
1.56
.56
0.87
1.0
1.15
1.3
0.87
1.0
1.07
1.15
S o age
Storage
constraints
Virtual machine
Turnaround time
Project Attribute
Cost Driver
Very
Low
Low
Nomin
al
High
Very
High
Extra
High
S/W Tools
1.24
1.1
1.0
0.91
0.83
SWE methods
1.24
1.1
1.0
0.91
0.82
Required
schedule
h d l
1.23
1.08
1.0
1.04
1.1
The multipliers
p
for the ppersonnel attributes are:
Personnel
Attribute Cost
Driver
Very
Low
Low
Nomi
nal
High
Very
High
Extra
High
Analyst
1.46
1.19
1.0
0.86
0.71
S/W Engineer
1.42
1.17
0.86
0.7
Application
pp
exp.
VM Experience
1.29
1.13
1.0
0.91
0.82
1.21
1.1
1.0
0.95
Prog. Lang.
exp.
1.14
1.07
1.0
0.95
ai
bi
Organic
3.2
1.05
Semidetached
3.0
1.12
Embedded
2.8
1.20
The
h values
l
for
f the
h cost drivers
di
are multiplied together to
obtain an effort adjustment
factor (EAF)
(EAF). Typical range
is 0.9 to 1.4.
Exemple:
Suppose basic COCOMO model predicts 45 person
person-months
months of effort to
develop an embedded application on a workstation.
Suppose the effort multipliers for the intermediate model all have nominal
value (i.e.,
(i e 1.0)
1 0) except
Requires S/W Reliability = 1.15
Storage Constraint = 1.21
1 21
Execution Time Constraints = 1.10
Software Tools = 1.10.
E
Exemple:
l
The intermediate COCOMO model thus gives an estimate:
pm = 45*1.15*1.21*1.10*1.10 = 76 person months
Assume the average cost per software engineer is $7000 per pm, the cost is:
cost = 76*7000 = $532,000.
Suppose 1:
The intermediate COCOMO model thus gives an estimate:
pm = 45*1.15*1.21*1.10*1.10 = 76 person months
Assume the average cost per software engineer is $7000 per pm, the cost is:
cost = 76*7000 = $532,000.
Suppose
pp
1:
If an upgrade of the workstation was available with twice the processor
speed and twice the memory
memory, the new effort multipliers are:
Requires S/W Reliability = 1.15
Storage
S
o ge Co
Constraint
s
=1
Execution Time Constraints = 1
Software Tools = 1.24
(Requires additional hardware interfaces to be developed at a cost of
$30,000 and reduced the s/w tools attribute from low to very low (new
value 1.24).
Suppose
pp
1:
The predicted cost is now:
cost = 45*1.24*1.15*7000 = $449,190.
We get a predicted cost saving of about $90,000 for an expenditure of
$ ,
$30,000!!!
!!!
Conclusion: it is worth upgrading the hardware.