These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
1
Software Engineering: A Practitioner’s Approach, Software Engineering: A Practitioner’s Approach,
6/e 6/e
Chapter 23
Chapter 23
Estimation for Software Projects
Estimation for Software Projects
copyright © 1996, 2001, 2005R.S. Pressman & Associates, Inc.
For University Use Only
May be reproduced ONLY for student use at the university level
when used in conjunction with Software Engineering: A Practitioner's Approach.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
2
Software Project Planning
Software Project Planning
The overall goal of project planning is to
The overall goal of project planning is to
establish a pragmatic strategy for controlling,
establish a pragmatic strategy for controlling,
tracking, and monitoring a complex technical
tracking, and monitoring a complex technical
project.
project.
Why?
Why?
So the end result gets done on time, with quality!
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
3
Project Planning Task Set-I
Project Planning Task Set-I
Establish project scopeEstablish project scope Determine feasibilityDetermine feasibility Analyze risksAnalyze risks
Risk analysis is considered in detail in Chapter 25.Risk analysis is considered in detail in Chapter 25.
Define required resourcesDefine required resources
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
4
Project Planning Task Set-II
Project Planning Task Set-II
Estimate cost and effortEstimate cost and effort
Decompose the problemDecompose the problem
Develop two or more estimates using size, function points, Develop two or more estimates using size, function points,
process tasks or use-cases process tasks or use-cases
Reconcile the estimatesReconcile the estimates
Develop a project scheduleDevelop a project schedule
Scheduling is considered in detail in Chapter 24.Scheduling is considered in detail in Chapter 24.
Establish a meaningful task setEstablish a meaningful task set Define a task networkDefine a task network
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
5
Estimation
Estimation
Estimation of resources, cost, and schedule for a Estimation of resources, cost, and schedule for a
software engineering effort requires
software engineering effort requires
experienceexperience
access to good historical information (metricsaccess to good historical information (metrics
the courage to commit to quantitative predictions when the courage to commit to quantitative predictions when
qualitative information is all that exists
qualitative information is all that exists
Estimation carries inherent risk and this risk leads to Estimation carries inherent risk and this risk leads to
uncertainty
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
6
Write it Down!
Write it Down!
Software
Software
Project
Project
Plan
Plan
Project Scope
Project Scope
Estimates
Estimates
Risks
Risks
Schedule
Schedule
Control strategy
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
7
To Understand Scope ...
To Understand Scope ...
Understand the customers needsUnderstand the customers needs understand the business contextunderstand the business context understand the project boundariesunderstand the project boundaries
understand the customer’s motivationunderstand the customer’s motivation understand the likely paths for changeunderstand the likely paths for change understand that ...understand that ...
Even when you understand,
Even when you understand,
nothing is guaranteed!
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
8
What is Scope?
What is Scope?
Software scopeSoftware scope describes describes
the functions and features that are to be delivered to end-usersthe functions and features that are to be delivered to end-users the data that are input and outputthe data that are input and output
the “content” that is presented to users as a consequence of the “content” that is presented to users as a consequence of
using the software using the software
the performance, constraints, interfaces, and reliability that the performance, constraints, interfaces, and reliability that
bound
bound the system. the system.
Scope is defined using one of two techniques:Scope is defined using one of two techniques:
A narrative description of software scope is developed after A narrative description of software scope is developed after
communication with all stakeholders.
communication with all stakeholders.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
9
Resources
Resources
project
people
skills
number
location
reusable software
OTS components
full-experience components
new components
part.-experience components
environment
hardware software
tools
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
10
Project Estimation
Project Estimation
Project scope must be understoodProject scope must be understood
Elaboration (decomposition) is necessaryElaboration (decomposition) is necessary Historical metrics are very helpfulHistorical metrics are very helpful
At least two different techniques should be At least two different techniques should be
used
used
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
11
Estimation Techniques
Estimation Techniques
Past (similar) project experiencePast (similar) project experience
Conventional estimation techniquesConventional estimation techniques
task breakdown and effort estimatestask breakdown and effort estimates
size (e.g., FP) estimatessize (e.g., FP) estimates
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
12
Estimation Accuracy
Estimation Accuracy
Predicated on …Predicated on …
the degree to which the planner has properly estimated the size
of the product to be built
the ability to translate the size estimate into human effort,
calendar time, and dollars (a function of the availability of reliable software metrics from past projects)
the degree to which the project plan reflects the abilities of the
software team
the stability of product requirements and the environment that
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
13
Functional Decomposition
Functional Decomposition
functional functional decomposition decomposition Statement
Statement of
of Scope
Scope Perform a Perform a
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
14
Conventional Methods:
Conventional Methods:
LOC/FP Approach
LOC/FP Approach
compute LOC/FP using estimates of information compute LOC/FP using estimates of information
domain values
domain values
use historical data to build estimates for the use historical data to build estimates for the
project
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
15
Example: LOC Approach
Example: LOC Approach
Average productivity for systems of this type = 620 LOC/pm.
Average productivity for systems of this type = 620 LOC/pm.
Burdened labor rate =$8000 per month, the cost per line of
Burdened labor rate =$8000 per month, the cost per line of
code is approximately $13.
code is approximately $13.
Based on the LOC estimate and the historical productivity
Based on the LOC estimate and the historical productivity
data, the total estimated project cost is
data, the total estimated project cost is $431,000 and the $431,000 and the estimated effort is 54 person-months.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
16
Example: FP Approach
Example: FP Approach
The estimated number of FP is derived:
The estimated number of FP is derived:
FP
FPestimatedestimated = count-total 3 = count-total 3 [0.65 + 0.01 3 [0.65 + 0.01 3 SS (F (Fii)])] FP
FPestimatedestimated = 375 = 375
organizational average productivity = 6.5 FP/pm.
organizational average productivity = 6.5 FP/pm.
burdened labor rate = $8000 per month, the cost per FP is approximately $1230.
burdened labor rate = $8000 per month, the cost per FP is approximately $1230.
Based on the FP estimate and the historical productivity data,
Based on the FP estimate and the historical productivity data, the total estimated the total estimated project cost is $461,000 and the estimated effort is 58 person-months
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
17
Process-Based Estimation
Process-Based Estimation
Obtained from “process framework”
Obtained from “process framework”
application
application
functions
functions
framework activities
framework activities
Effort required to
Effort required to
accomplish
accomplish
each framework
each framework
activity for each
activity for each
application function
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
18
Process-Based Estimation Example
Process-Based Estimation Example
A ctivity
Task
Fu n ctio n
U IC F 2D GA 3D GA
D SM PC F C GD F
D AM
To tals
% effo rt
C C P la nning A na ly s isR is k E ngine e ring C ons truc tionR e le a s e C E T o tals
analy s is des ign c ode tes t
0.25 0.25 0.25 3.50 20.50 4.50 16.50 46.00
1% 1% 1% 8% 45% 10% 36%
C C = cus tom er c om m unic ation C E = cus tom er ev aluation 0.50 0.75 0.50 0.50 0.50 0.25 2.50 4.00 4.00 3.00 3.00 2.00 0.40 0.60 1.00 1.00 0.75 0.50 5.00 2.00 3.00 1.50 1.50 1.50 8.40 7.35 8.50 6.00 5.75 4.25 0.50 2.00 0.50 2.00 5.00
n/a n/a n/a n/a n/a n/a n/a
Based on an average burdened labor rate of $8,000 per month, the
Based on an average burdened labor rate of $8,000 per month, the
total estimated project cost is $368,000 and the estimated effort is 46
total estimated project cost is $368,000 and the estimated effort is 46
person-months.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
19
Tool-Based Estimation
Tool-Based Estimation
project characteristics
project characteristics
calibration factors
calibration factors
LOC/FP data
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
20
Estimation with Use-Cases
Estimation with Use-Cases
use cases scenarios pages scenarios pages LOC LOC estimate e subsystem 6 10 6 12 5 560 3,366 subsystem group 10 20 8 16 8 3100 31,233 e subsystem group 5 6 5 10 6 1650 7,970
stimate 42,568
User interface subsystem Engineering subsystem group Infrastructure subsystem group Total LOC estimate
Using 620 LOC/pm as the average productivity for systems of this
Using 620 LOC/pm as the average productivity for systems of this
type and a burdened labor rate of $8000 per month, the cost per line
type and a burdened labor rate of $8000 per month, the cost per line
of code is approximately $13. Based on the use-case estimate and the
of code is approximately $13. Based on the use-case estimate and the
historical productivity data, the total estimated project cost is
historical productivity data, the total estimated project cost is
$552,000 and the estimated effort is 68 person-months.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
21
Empirical Estimation Models
Empirical Estimation Models
General form:General form:
effort = tuning coefficient * size
effort = tuning coefficient * size exponentexponent
usually derived
usually derived
as person-months
as person-months
of effort required
of effort required
either a constant or
either a constant or
a number derived based
a number derived based
on complexity of project
on complexity of project
usually LOC but
usually LOC but
may also be
may also be
function point
function point
empirically
empirically
derived
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
22
COCOMO-II
COCOMO-II
COCOMO II is actually a hierarchy of estimation COCOMO II is actually a hierarchy of estimation
models that address the following areas:
models that address the following areas:
Application composition model.Application composition model. Used during the early stages of Used during the early stages of
software engineering, when prototyping of user interfaces,
software engineering, when prototyping of user interfaces,
consideration of software and system interaction, assessment of
consideration of software and system interaction, assessment of
performance, and evaluation of technology maturity are
performance, and evaluation of technology maturity are
paramount.
paramount.
Early design stage model.Early design stage model. Used once requirements have been Used once requirements have been
stabilized and basic software architecture has been established.
stabilized and basic software architecture has been established. Post-architecture-stage model.Post-architecture-stage model. Used during the construction of the Used during the construction of the
software.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
23
The Software Equation
The Software Equation
A dynamic multivariable model
A dynamic multivariable model
E = [LOC x B
E = [LOC x B0.3330.333/P]/P]33 x (1/t x (1/t44))
where
where
E = effort in person-months or person-years
E = effort in person-months or person-years
t = project duration in months or years
t = project duration in months or years
B = “special skills factor”
B = “special skills factor”
P = “productivity parameter”
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
24
Estimation for OO Projects-I
Estimation for OO Projects-I
Develop estimates using effort decomposition, FP analysis, and any other Develop estimates using effort decomposition, FP analysis, and any other method that is applicable for conventional applications.
method that is applicable for conventional applications.
Using object-oriented analysis modeling (Chapter 8), develop use-cases and Using object-oriented analysis modeling (Chapter 8), develop use-cases and determine a count.
determine a count.
From the analysis model, determine the number of key classes (called From the analysis model, determine the number of key classes (called analysis classes in Chapter 8).
analysis classes in Chapter 8).
Categorize the type of interface for the application and develop a multiplier Categorize the type of interface for the application and develop a multiplier for support classes:
for support classes:
Interface typeInterface type MultiplierMultiplier
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
25
Estimation for OO Projects-II
Estimation for OO Projects-II
Multiply the number of key classes (step 3) by the multiplier to Multiply the number of key classes (step 3) by the multiplier to
obtain an estimate for the number of support classes. obtain an estimate for the number of support classes.
Multiply the total number of classes (key + support) by the average Multiply the total number of classes (key + support) by the average
number of work-units per class. Lorenz and Kidd suggest 15 to 20 number of work-units per class. Lorenz and Kidd suggest 15 to 20
person-days per class. person-days per class.
Cross check the class-based estimate by multiplying the average Cross check the class-based estimate by multiplying the average
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
26
Estimation for Agile Projects
Estimation for Agile Projects
Each user scenario (a mini-use-case) is considered separately for estimation Each user scenario (a mini-use-case) is considered separately for estimation purposes.
purposes.
The scenario is decomposed into the set of software engineering tasks that The scenario is decomposed into the set of software engineering tasks that will be required to develop it.
will be required to develop it.
Each task is estimated separately. Note: estimation can be based on Each task is estimated separately. Note: estimation can be based on historical data, an empirical model, or “experience.”
historical data, an empirical model, or “experience.”
Alternatively, the ‘volume’ of the scenario can be estimated in LOC, FP or some Alternatively, the ‘volume’ of the scenario can be estimated in LOC, FP or some
other volume-oriented measure (e.g., use-case count). other volume-oriented measure (e.g., use-case count).
Estimates for each task are summed to create an estimate for the scenario.Estimates for each task are summed to create an estimate for the scenario. Alternatively, the volume estimate for the scenario is translated into effort using Alternatively, the volume estimate for the scenario is translated into effort using
historical data. historical data.
The effort estimates for all scenarios that are to be implemented for a given The effort estimates for all scenarios that are to be implemented for a given software increment are summed to develop the effort estimate for the
software increment are summed to develop the effort estimate for the
increment.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
27
The Make-Buy Decision
The Make-Buy Decision
system X
system X reusereuse
simple (0.30) simple (0.30)
difficult (0.70) difficult (0.70)
minor
minor changeschanges (0.40) (0.40) major major changes changes (0.60) (0.60) simple (0.20) simple (0.20) complex (0.80) complex (0.80) major
major changeschanges (0.30)(0.30) minor
minor changeschanges (0.70) (0.70) $380,000 $380,000 $450,000 $450,000 $275,000 $275,000 $310,000 $310,000 $490,000 $490,000 $210,000 $210,000 $400,000 $400,000 buy buy contract contract
without changes (0.60) without changes (0.60)
with changes (0.40) with changes (0.40)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman &
Associates, Inc., copyright © 1996, 2001, 2005
28
Computing Expected Cost
Computing Expected Cost
(path probability) x (estimated path cost) (path probability) x (estimated path cost) ii ii
For example, the expected cost to build is:
For example, the expected cost to build is:
expected cost = 0.30 ($380K) + 0.70 ($450K)
expected cost = 0.30 ($380K) + 0.70 ($450K)
similarly,
similarly,
expected cost =
expected cost =
$382K
$382Kexpected cost = expected cost =
$267K
$267Kexpected cost = expected cost =
$410K $410K build build reus reus e ebuy buy contr contr
expected cost =
expected cost =
= $429 K