Lecture 12 Software Estimation
Lecture 12 Software Estimation
• Why is it important?
Would you build a house without knowing how much you were about to spend? reasonable to develop an
estimate before you start
2
What is the work product?
Can be a simple table showing the tasks to be performed and the cost, effort, and time involved for each
task.
3
Project Planning
You should use three main parameters when computing the costs of a software
development project
4
The Estimation Process
5
Resource Estimation
Human Resources
The planner begins by evaluating software scope and selecting the skills required to complete
development. organizational position (e.g., manager, senior software engineer).
For relatively small projects (a few person-months), a single individual may perform all software
engineering tasks, consulting with specialists as required. For larger projects, the software team may be
geographically dispersed across a number of different locations. Hence, the location of each human
resource is specified.
6
Project resources
Difference Between
7
Reusable Software Resources
Off-the-shelf components.
Existing software that can be acquired from a third party or from a past project. COTS (commercial
off-the-shelf) components are purchased from a third party, are ready for use on the current project,
and have been fully validated
Full-experience components.
Existing specifications, designs, code, or test data developed for past projects that are similar to the
software to be built for the current project
Partial-experience components.
Existing specifications, designs, code, or test data developed for past projects that are related to the
software to be built for the current project but will require substantial modification
New components.
Software components must be built by the software team specifically for the needs of the current
project.
8
Software Project Estimation
1. Delay estimation until late in the project (obviously, we can achieve 100 percent accurate estimates
after the project is complete!). however attractive, it is not practical
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
9
Decomposition techniques
Software sizing
• If a direct approach is taken, size can be measured in lines of code (LOC).
• If an indirect approach is chosen, size is represented as function points
(FP).
(The function point (FP) metric can be used effectively as a means for measuring the
functionality delivered by a system.)
10
An Example of Estimation
• The software will accept two- and three-dimensional geometric data from an
engineer. The engineer will interact and control the 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 (computer-
aided design) 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.
11
Estimation table
Example: Consider the software has 33,200 lines of codes as listed in below. We can calculate an estimated
project cost by using LOC method.
12
Example cont.
A review of historical data indicates that the organizational average productivity for systems of this type
is 620 LOC/pm.
Based on a burdened labor rate of $8000 per month, the cost per line of code is approximately
$13. (8000/620)
Based on the LOC estimate and the historical productivity data, the total estimated project cost is
$431,000 . (13* 33200)
13
Question
• b) Actual person-days required to complete the project: = Actual lines of code produced / Productivity rate
Actual person-days = 90,000 LOC / 75 = 1200 person-days
• c) Variance between the estimated and actual person-days: Variance = |Initial estimated person-days - Actual
person-days| = |1067 person-days - 1200 person-days| = 133 person-days
Percentage Variance = (Variance / Initial estimated person-days) * 100 = (133 / 1067) * 100 ≈ 12.50%
Therefore:
• a) The initially estimated person-days allocated for the project were approximately 1067 person-days.
• b) The actual person-days required to complete the project were 1200 person-days.
• c) The percentage variance between the estimated and actual person-days is approximately 12.50%.
15
The Make buy Decision
In many software application areas, it is often more cost effective to acquire rather
than develop computer software
16
Outsourcing
Why outsourcing
“Is there a way that we can get the software and systems we need at a
lower price and resources?
17