Estimation of Software Projects
Estimation of Software Projects
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!
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 ...
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
framework activities
20
Process-Based Estimation Example
Activity Risk Construction
CC Planning Analysis Engineering Release CE Totals
Task analysis design code test
Function
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:
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
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
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
33
The Software Equation
A dynamic multivariable model
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