Estimation
for Software
Projects
Software Engineering
ITS66404
This Photo by Unknown Author is licensed under CC BY-SA
Agenda
Software Project Planning
Estimation Steps
Scope
Categories of Estimation
Estimation Techniques
Examples
2
Introduction
Software Project Planning encompasses 5 major activities. Estimation is one if it.
Estimation is a process to predict the time and the cost that a project requires to be
finished appropriately. But in terms of software development, it also means of
consideration of the experience of the software development company; the technique
they employ; the process they may go through to finish the task. This whole process
requires the use of complex tools and good mathematical background knowledge. It is
in some cases is the accomplishment of the hard work of a whole team.
3
Sample footer text 3/1/20XX 4
HOW MUCH WILL YOUR
SOFTWARE COST?
Software Project Planning
+ Encompasses of 5 major activities: Estimation, scheduling,
risk analysis, Quality Management Planning & Change
Management Planning.
+ Estimation determine how much money, effort, resources
and time it will take to build a specific system or software
Sample footer text 3/1/20XX 5
1st Estimation Steps
 The software team first estimates:
+ The work to be done
+ The resources required
+ The time that will elapse (the time it will take) from start to
finish
Sample footer text 3/1/20XX 6
2nd Estimation Steps
 They will establish a project
schedule that
+ Defines tasks and milestones
+ Identifies who is responsible
for conducting tasks
+ Specifies intertask
dependencies
Sample footer text 3/1/20XX 7
8
Task Set For Project Planning
1. Establish project scope
2. Determine feasibility
3. Analyze risks
1. Risk analysis already discussed in
Project Management chapter.
4. Define required resources
1. Determine require human resources
2. Define reusable software resources
3. Identify environmental resources
5. Estimate cost and effort
+ Decompose the problem
+ Develop two or more estimates using size, function
points, process tasks or use-cases
+ Reconcile the estimates
6. 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
9
Observation on 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
10
Write it Down!
Software
Project
Plan
Project Scope
Estimates
Risks
Schedule
Control strategy
11
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!
12
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.
13
Categories of
Resources
+ People
+ Environment
+ Reusable Software
14
Project
Estimation
Considerations
+ 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
15
Project Estimation
16
Estimation Techniques
+ Past (similar) project experience
+ Conventional estimation techniques
task breakdown and effort estimates
size (e.g., FP) estimates
+ Empirical models
+ Automated tools
There are plenty of estimation strategies that estimators could employ. But, firstly, they could
take into consideration the complexity of the project, the amount of information acquired, and
time constraints. An appropriate combination of those things could result in the estimating
approaches as follows:
17
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.
The whole process of estimation would cost the company rather considerable cost and time at the very
first stage of building an app. But this will make the final result more credible, realistic, and customer-
satisfying. Projects especially big ones are advised to employ this crucial step to avoid unpredictable
failure.
18
Conventional Techniques:
1. LOC/FP Approach
+ compute LOC/FP using estimates of information domain
values
+ use historical data to build estimates for the project
+ LOC- Line of Codes
+ FP – Function points
19
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.
2. FP Approach
+ A Function Point (FP) is a unit of measurement to express the
amount of business functionality, an information system (as a
product) provides to a user.
+ FPs measure software size. They are widely accepted as an
industry standard for functional sizing.
20
21
Example: FP Approach
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.
22
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-
Hill 2009). Slides copyright 2009 by Roger Pressman.
Tool-Based Estimation
project characteristics
calibration factors
LOC/FP data
23
Estimation with Use-Cases
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.
Thank you
24
Addendums
25
Addendum
26
27

SE - Lecture 11 - Software Project Estimation.pptx

  • 1.
    Estimation for Software Projects Software Engineering ITS66404 ThisPhoto by Unknown Author is licensed under CC BY-SA
  • 2.
    Agenda Software Project Planning EstimationSteps Scope Categories of Estimation Estimation Techniques Examples 2
  • 3.
    Introduction Software Project Planningencompasses 5 major activities. Estimation is one if it. Estimation is a process to predict the time and the cost that a project requires to be finished appropriately. But in terms of software development, it also means of consideration of the experience of the software development company; the technique they employ; the process they may go through to finish the task. This whole process requires the use of complex tools and good mathematical background knowledge. It is in some cases is the accomplishment of the hard work of a whole team. 3
  • 4.
    Sample footer text3/1/20XX 4 HOW MUCH WILL YOUR SOFTWARE COST?
  • 5.
    Software Project Planning +Encompasses of 5 major activities: Estimation, scheduling, risk analysis, Quality Management Planning & Change Management Planning. + Estimation determine how much money, effort, resources and time it will take to build a specific system or software Sample footer text 3/1/20XX 5
  • 6.
    1st Estimation Steps The software team first estimates: + The work to be done + The resources required + The time that will elapse (the time it will take) from start to finish Sample footer text 3/1/20XX 6
  • 7.
    2nd Estimation Steps They will establish a project schedule that + Defines tasks and milestones + Identifies who is responsible for conducting tasks + Specifies intertask dependencies Sample footer text 3/1/20XX 7
  • 8.
    8 Task Set ForProject Planning 1. Establish project scope 2. Determine feasibility 3. Analyze risks 1. Risk analysis already discussed in Project Management chapter. 4. Define required resources 1. Determine require human resources 2. Define reusable software resources 3. Identify environmental resources 5. Estimate cost and effort + Decompose the problem + Develop two or more estimates using size, function points, process tasks or use-cases + Reconcile the estimates 6. 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
  • 9.
    9 Observation on 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
  • 10.
    10 Write it Down! Software Project Plan ProjectScope Estimates Risks Schedule Control strategy
  • 11.
    11 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!
  • 12.
    12 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.
  • 13.
    13 Categories of Resources + People +Environment + Reusable Software
  • 14.
    14 Project Estimation Considerations + Project scopemust 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
  • 15.
  • 16.
    16 Estimation Techniques + Past(similar) project experience + Conventional estimation techniques task breakdown and effort estimates size (e.g., FP) estimates + Empirical models + Automated tools There are plenty of estimation strategies that estimators could employ. But, firstly, they could take into consideration the complexity of the project, the amount of information acquired, and time constraints. An appropriate combination of those things could result in the estimating approaches as follows:
  • 17.
    17 Estimation Accuracy + Predicatedon … 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. The whole process of estimation would cost the company rather considerable cost and time at the very first stage of building an app. But this will make the final result more credible, realistic, and customer- satisfying. Projects especially big ones are advised to employ this crucial step to avoid unpredictable failure.
  • 18.
    18 Conventional Techniques: 1. LOC/FPApproach + compute LOC/FP using estimates of information domain values + use historical data to build estimates for the project + LOC- Line of Codes + FP – Function points
  • 19.
    19 Example: LOC Approach Averageproductivity 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.
  • 20.
    2. FP Approach +A Function Point (FP) is a unit of measurement to express the amount of business functionality, an information system (as a product) provides to a user. + FPs measure software size. They are widely accepted as an industry standard for functional sizing. 20
  • 21.
    21 Example: FP Approach averageproductivity = 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.
  • 22.
    22 These slides aredesigned to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw- Hill 2009). Slides copyright 2009 by Roger Pressman. Tool-Based Estimation project characteristics calibration factors LOC/FP data
  • 23.
    23 Estimation with Use-Cases Using620 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.
  • 24.
  • 25.
  • 26.
  • 27.