Estimation For Software Projects
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. 1
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. 2
Estimation of cost ,resources and schedule for
a software engineering effort requires
experience ,access to good historical
information
Factors that affect project estimation
Project complexity :it has a strong effect on the
uncertainty inherent in planning.
Project size: can effect the accuracy and
efficiency of estimates. As size increases
,interdependency between various elements of
software grows and decomposition too
becomes difficult. 3
The degree of structural uncertainty refers to
the degree to which the requirements are
frozen .
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 4
Software scope and feasibility
5
Resources
Define required resources
Determine require human resources
The planner begins by evaluating the software scope
and selecting the skills required to complete
development.
Both organizational position (manager ,senior
software engineer) and specialty
(telecommunications ,database ,client server) are
specified.
The number of people required for a software project
can be determined only after an estimate of
development effort
6
Define reusable software resources
Four software resource categories
Off the shelf components: Existing software that can
be acquired form third party
Full experience components: Existing specifications,
designs ,code or test data developed for past
projects that are similar to the software to be built
Partial experience components: Existing
specifications ,designs, code or test data developed
for past projects that are related to the software to be
built but requires substantial modification.
New components: Software components must be
built by the software team specifically for the needs
of the current project.
7
Environmental Resources
Often called the software engineering
environment(SEE) incorporates hardware and
software .
Hardware provides a platform that supports
tools required to produce the work products.
8
Resources
number software
tools
skills hardware
people
environment network
location resources
project
reusable
OTS
software
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. 9
Software project estimation
To achieve reliable cost and effort estimates a
number options arise
1.Delay estimation until late in the project
2.base the estimates on similar projects
developed in the past
3.Use relatively simple decomposition
techniques to generate project cost and effort
estimates
4.use one or more empirical models for
software cost and effort estimation
10
Decomposition Techniques
1.Software sizing
The accuracy of a software project estimate is
predicted on a number of things
1 the degree to which you have properly
estimated the size of the product to be built
2.the ability to translate the size estimate into
human effort ,calendar time ,and dollars
3.The degree to which project plan reflects the
abilities of the software team
4.Stablity of requirements an software
environment
11
Size is measured directly by loc and indirectly
by FP
There are four approaches to sizing problem
Fuzzy logic sizing :This approach uses
approximate reasoning techniques
Function point sizing:
Standard component sizing: Size determined
based on the number of software components
and their size
Change sizing: used when the project
encompasses existing software that must be
modified in some way as a part of the project. 12
Problem based estimation
Loc and FP are used in two ways during
software project estimation
1.as estimation variables to size each element
of the software
2.as baseline metrics collected from the past
projects and used in conjunction with
estimation variables to develop cost and effort
projections.
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. 14
Conventional Methods:
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
framework activities
18
Process-Based Estimation Example
Activity Risk Construction
CC Planning Analysis Engineering Release CE Totals
Task analysis design code test
Function
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
Engineering subsystem
subsystem group group 10 20 8 Ź 16 8 3100 31,233
Infrastructure subsystem
e subsystem group group5 6 5 Ź 10 6 1650 7,970
TotalLOC estimate Ź Ź Ź Ź
stimate Ź Ź Ź Ź 42,568
21
Empirical Estimation Models
General form:
exponent
effort = tuning coefficient * size
usually derived
as person-months empirically
of effort required derived
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 22
Introduction
Constructive Cost Model was developed by
Boehm .
This model estimates the total effort in terms
of person months.
Cocomo model is commonly used because it is
based on the study of already developed
projects.
In this model the size is measured in terms of
thousands of delivered lines of code (KDLOC).
Person months
If a project will take 2 months to finish with 3
people working full time on it, the project
requires 2*3 = 6 person-month effort.
If an employee worked 20 days on a project,
his contribution to the project is 1*20/30 =
0.6666 person-month. (Note that month is
considered 30 days in such calculations.)
Three categories
Cocomo model divides the projects into three
categories.
1) Organic projects :These projects are small in
size and thus easy to develop. In organic
projects small teams with prior experience
work together to accomplish user
requirements which are less demanding.
Examples : Inventory management system,
Payroll management system
Three categories
2) Embedded projects
These projects are complex in nature
and organizations have less experience in
developing such type of projects.
These projects are developed under tight
constraints (hardware ,software and people.)
Examples
software systems used in avionics and military
hardware.
Three categories
3) Semi detached projects
These projects are less complex as user
requirements are less stringent compared to embedded
projects.
The size of semi-detached project is not more than 300
KDLOC
Examples
Operating system
Compiler design
Database design
Introduction
The objectives of COCOMO II where
precedentedness 2
Development flexibility 1
Team cohesion 2
Process maturity 5
Total 14
Early Design Model
Cost Drivers
Factors Rating
PERS 4
RCPX 3
RUSE 2
PDIF 5
FCIL 2
SCED 3
PREX 2
Total 1440
Early Design Model
The value of B is calculated as B= 14/100 +1.01 =1.15
Value of M is calculated by multiplying the rating of
seven factors M= 1440
Effort can be calculated as follows
53
Estimation for OO Projects-II
Multiply the number of key classes (step 3) by the
multiplier to obtain an estimate for the number of support
classes.
Multiply the total number of classes (key + support) by
the average number of work-units per class. Lorenz and
Kidd suggest 15 to 20 person-days per class.
Cross check the class-based estimate by multiplying the
average number of work-units per use-case
54
Estimation for Agile Projects
Each user scenario (a mini-use-case) is considered separately
for estimation purposes.
The scenario is decomposed into the set of software
engineering tasks that will be required to develop it.
Each task is estimated separately. Note: estimation can be
based on historical data, an empirical model, or “experience.”
Alternatively, the ‘volume’ of the scenario can be estimated in LOC,
FP or some other volume-oriented measure (e.g., use-case count).
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 historical data.
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 increment.
55
The Make-Buy Decision
simple (0.30)
$380,000
$450,000
difficult (0.70)
build
$275,000
minorchanges
minorchanges
(0.40)
reuse
system X $310,000
simple (0.20)
major
changes
buy (0.60) $490,000
complex (0.80)
minorchanges
minorchanges $210,000
contract (0.70)
$400,000
majorchanges(0.30)
$500,000
with changes (0.40)
56
Computing Expected Cost
expected cost =