1
Chapter 26
Estimation for Software Projects
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
2
Software Project Planning
The overall goal of project planning is to
establish a pragmatic strategy for controlling,
tracking, and monitoring a complex technical
project.
Why?
So the end result gets done on time, with
quality!
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
3
Project Planning Task Set-I
Establish project scope
Determine feasibility
Analyze risks
Risk analysis is considered in detail in Chapter 25.
Define required resources
Determine require human resources
Define reusable software resources
Identify environmental resources
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
4
Project Planning Task Set-II
Estimate cost and effort
Decompose the problem
Develop two or more estimates using size, function
points, process tasks or use-cases
Reconcile the estimates
Develop a project schedule
Scheduling is considered in detail in Chapter 27.
Establish a meaningful task set
Define a task network
Use scheduling tools to develop a timeline chart
Define schedule tracking mechanisms
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
5
Estimation
Estimation of resources, cost, and schedule for a
software engineering effort requires
experience
access to good historical information (metrics)
the courage to commit to quantitative predictions
when qualitative information is all that exists
Estimation carries inherent risk and this risk leads to
uncertainty
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
6
Write it Down!
Project Scope Software
Estimates Project
Risks Plan
Schedule
Control strategy
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
7
To Understand Scope ...
Understand the customers needs
understand the business context
understand the project boundaries
understand the customer’s motivation
understand the likely paths for change
understand that ...
Even when you understand,
nothing is guaranteed!
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
8
What is Scope?
Software scope describes
the functions and features that are to be delivered to
end-users
the data that are input and output
the “content” that is presented to users as a
consequence of using the software
the performance, constraints, interfaces, and reliability
that bound the system.
Scope is defined using one of two techniques:
A narrative description of software scope is developed after
communication with all stakeholders.
A set of use-cases is developed by end-users.
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
9
Resources
number software
tools
skills hardware
people
environment network
location resources
project
reusable
software
OTS new
components components
full-experience part.-experience
components components
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
10
Project Estimation
Project scope must be
understood
Elaboration (decomposition)
is necessary
Historical metrics are very
helpful
At least two different
techniques should be used
Uncertainty is inherent in the
process
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
11
Estimation Techniques
Past (similar) project experience
Conventional estimation techniques
task breakdown and effort estimates
size (e.g., FP) estimates
Empirical models
Automated tools
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
12
Estimation Accuracy
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 supports the software engineering
effort.
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
13
Functional Decomposition
Statement functional
of decomposition
Scope
Perform a
Grammatical “parse”
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
Conventional Methods: 14
LOC/FP Approach
compute LOC/FP using estimates of information
domain values
use historical data to build estimates for the
project
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
15
Example: LOC Approach
Average productivity for systems of this type = 620 LOC/pm.
Burdened labor rate =$8000 per month, the cost per line of
code is approximately $13.
Based on the LOC estimate and the historical productivity
data, the total estimated project cost is $431,000 and the
estimated effort is 54 person-months.
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
16
Example: FP Approach
The estimated number of FP is derived:
FPestimated = count-total 3 [0.65 + 0.01 3 S (Fi)]
FPestimated = 375
organizational average productivity = 6.5 FP/pm.
burdened labor rate = $8000 per month, approximately $1230/FP.
Based on the FP estimate and the historical productivity data, total estimated
project cost is $461,000 and estimated effort is 58 person-months.
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
17
Process-Based Estimation
Obtained from “process framework”
framework activities
application Effort required to
functions accomplish
each framework
activity for each
application function
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
18
Process-Based Estimation
Example
Activity Risk Construction
CC Planning Analysis Engineering Release CE Totals
Task analysis design code test
Function
UICF 0.50 2.50 0.40 5.00 n/a 8.40
2DGA 0.75 4.00 0.60 2.00 n/a 7.35
3DGA 0.50 4.00 1.00 3.00 n/a 8.50
CGDF 0.50 3.00 1.00 1.50 n/a 6.00
DSM 0.50 3.00 0.75 1.50 n/a 5.75
PCF 0.25 2.00 0.50 1.50 n/a 4.25
DAM 0.50 2.00 0.50 2.00 n/a 5.00
Totals 0.25 0.25 0.25 3.50 20.50 4.50 16.50 46.00
% effort 1% 1% 1% 8% 45% 10% 36%
CC = customer communication CE = customer evaluation
Based on an average burdened labor rate of $8,000 per
month, the total estimated project cost is $368,000 and
the
These slides are designed estimated
to accompany effort is
Software Engineering: A 46 person-months.
Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
19
Tool-Based Estimation
project characteristics
calibration factors
LOC/FP data
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
20
Estimation with Use-Cases
use cases scenarios pages К scenarios pages LOC LOC estimate
e subsystem
User interface subsystem 6 10 6 К 12 5 560 3,366
Engineeringsubsystem
subsystemgroup
group 10 20 8 К 16 8 3100 31,233
Infrastructure subsystem group
e subsystem group 5 6 5 К 10 6 1650 7,970
К К К К
Total LOC estimate
stimate К К К К 42,568
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 of code is approximately $13. Based on the use-
case estimate and the historical productivity data, the total
estimated project cost is $552,000 and the estimated
effort is 68 person-months.
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
21
Empirical Estimation Models
General form:
exponent
effort = tuning coefficient * size
usually derived
as person-months empirically
of effort required derived
usually LOC but
may also be
function point
either a constant or
a number derived based
on complexity of project
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
22
COCOMO-II
COCOMO II is actually a hierarchy of estimation
models that address the following areas:
Application composition model. Used during the early
stages of software engineering, when prototyping of user
interfaces, consideration of software and system interaction,
assessment of performance, and evaluation of technology
maturity are paramount.
Early design stage model. Used once requirements have
been stabilized and basic software architecture has been
established.
Post-architecture-stage model. Used during the construction
of the software.
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
23
The Software Equation
A dynamic multivariable model
E = [LOC x B0.333/P]3 x (1/t4)
where
E = effort in person-months or person-years
t = project duration in months or years
B = “special skills factor”
P = “productivity parameter”
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
24
The Make-Buy Decision
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.
25
Computing Expected Cost
expected cost =
(path probability) x (estimated path cost)
i i
For example, the expected cost to build is:
expected cost = 0.30 ($380K) + 0.70 ($450K)
build
= $429 K
similarly,
expected cost = $382K
reuse
expected cost = $267K
buy
expected cost = $410K
contr
These slides are designed to accompany Software Engineering: A
Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright
2009 by Roger Pressman.