You are on page 1of 37

Estimation for Software

Projects

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!

2
Project Planning Task Set-I
 Establish project scope
 Determine feasibility
 Analyze risks
 Define required resources
 Determine require human resources
 Define reusable software resources
 Identify environmental resources

3
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
 Establish a meaningful task set
 Define a task network
 Use scheduling tools to develop a timeline chart
 Define schedule tracking mechanisms

4
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

5
Write it Down!

Project Scope Software


Estimates Project
Risks Plan
Schedule
Control strategy

6
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!

7
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.

8
Software Feasibility
Software feasibility has four dimensions:
Technology
 Is a project technically feasible?
 Is it within the state of the art?
Finance
 Is it financially feasible?
 Can development be completed at a cost the software
organization, its client or the market can afford?
Time
 Will the project’s time-to-market beat the competition?
Resources
 Does the organization have the resources needed to succeed?

9
Resources
 Three categories of software engineering
resources
 People
 Reusable components
 Development environment
 Each resource is specified with four
characteristics:
 Description of the resource
 A statement of availability
 Time when the resources will be required
 Duration of time that the resource will be applied

10
Resources
number software
tools
skills hardware

people
environment network
location resources

project

reusable
OTS
software
new
components components

full-experience part.-experience
components components

11
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

12
Estimation Techniques
 Past (similar) project experience
 Conventional estimation techniques
 task breakdown and effort estimates
 size (e.g., FP) estimates
 Empirical models
 Automated tools

13
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.

14
Problem-based estimation
 LOC &FP data used in 2 ways for estimation:
 As estimation variables to “size” each element of the software
 As baseline metrics collected from past projects and use to
develop cost and effort projections
 In case of LOC, greater degree of partitioning of scope
leads to accurate estimation
 FP consider the information characteristics
 Input
 Output
 Data files
 Inquiries
 External interfaces

15
Problem-based estimation

16
The scope of mechanical
CAD software
The mechanical CAD software will accept two- and
three-dimensional geometric data from an engineer.
The engineer will interact and control the CAD system
through a user interface that will exhibit characteristics
of good human/machine interface design. All
geometric data and other supporting information will
be maintained in a CAD database. Design analysis
modules will be developed to produce the required
output, which will be displayed on a variety of graphics
devices. The software will be designed to control and
interact with peripheral devices that include a mouse,
digitizer, laser printer, and plotter.

17
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.
18
Example: FP Approach

The estimated number of FP is derived:


FPestimated = count-total * [0.65 + 0.01 * ∑(Fi)]
FPestimated = 375
Fi represents complexity weighting factor.(e.g. backup & recovery, data
communication, distributed processing etc.)
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.
19
Process-Based Estimation
Obtained from “process framework”

framework activities

application Effort required to


functions accomplish
each framework
activity for each
application function

20
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
estimated effort is 46 person-months.
21
Estimation with Use-Cases
 Unlike an LOC or a function point, one person’s
“use case” may require month of effort while
another person’s use case may be implemented in
day or to.
 Before use cases can be used for estimation,
following characteristics are established.
 The level within the structural hierarchy
 The average length (in pages) of each use case is
determine (note : description of use case measures in
page)
 The type of software
 Rough architecture for the system

22
Estimation with Use-Cases
 Empirical data may be used to establish the
estimated number of LOC or FP per use case
 Computation can be done using following
relationship:

LOC estimate = N x LOCavg + [(Sa / Sh - 1) + (Pa /


Pa – 1)] * LOCadjust

Where
N = actual number of use cases

23
Estimation with Use-Cases
LOCavg = historical average LOC per use case for this type
of subsystem
LOCadjust = represents an adjustment based on n percent of
LOCavg where n is defined locally and represents the
difference between this project and “average” projects
Sa = actual scenarios per use case (note : scenario is one
path of use case)
Sh = average scenarios per use case for this type of
subsystem
Pa = actual pages per use case
Ph = average pages per use case for this type of subsystem

24
Estimation with Use-Cases
use cases scenarios pages Êscenarios pages LOC LOC
LOCestimate
estimate
e subsystem
User interface subsystem 6 10 6 Ê 12 5 560 3,366
3,366
Engineering subsystem
subsystem group
group 10 20 8 Ê 16 8 3100 31,233
31,233
Infrastructure subsystem group
e subsystem group 5 6 5 Ê 10 6 1650 7,970
7,970
Total LOC estimate Ê Ê Ê Ê
stimate Ê Ê Ê Ê 42,568
42,5689

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.

25
Reconciling Estimates
 Various estimation techniques to be used
 If agreement among the estimates is poor, reevaluate
the information used to make the estimates.
 For widely diverse estimates, trace one of the
following clauses:
 The scope of the project is not adequately understood or
has been misinterpreted by the planner
 Productivity data used for problem-based estimation
techniques is inappropriate for the application, obsolete or
has been misapplied
 Determine the cause of divergence and reconcile the
estimates

26
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

27
Basic COCOMO Model
 The COCOMO model gives an approximation
estimate of the project parameters. The basic
COCOMO estimation model is given by the
following expression:
Effort = a1 X (KLOC)a2 PM
Tdev = b1 X (Effort)b2 Months
Where
(a) KLOC is the estimates size of the software
product expressed in Kilo Lines of Code
(b) a1, a2, b1, b2 are constants

28
Basic COCOMO Model
(c) Tdev is the estimated time to develop the
software, expressed in months
(d) Effort is the total effort required to develop the
software product, expressed in person months
(PMs)

29
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
• 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.

30
COCOMO-II
 The COCOMO II application model uses object
points
 Object point measure is computed using
counts of the number of
 Screens (at the user interface)
 Reports
 Components likely to be required to build the
application

31
COCOMO-II
Object type Complexity
Simple Medium Difficult
Screen
Report
3GL component

• New Object Point is calculated as sum of


weighted object points
• When component-based development or general
software reuse is to be applied, the percent of
reuse is estimated and the object point count is
adjusted:
NOP = (object points) X [(100 - %reuse)/100]
32
COCOMO-II
 To derive an estimate of effort based on the
computed NOP value, a productivity rate can
be derived as follows:
PROD = NOP/person-month
 An estimate of project effort is computed as
below:
Estimated effort = NOP/PROD

33
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”

34
Estimation for OO Projects-I
 Develop estimates using effort decomposition, FP analysis,
and any other method that is applicable for conventional
applications.
 Using object-oriented requirements modeling, develop use-
cases and determine a count.
 From the analysis model, determine the number of key classes.
 Categorize the type of interface for the application and develop
a multiplier for support classes:
Interface type Multiplier
No GUI 2.0
Text-based user interface 2.25
GUI 2.5
Complex GUI 3.0

35
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.

36
Thank You

37

You might also like