Software Effort Estimation

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 51

Software Effort Estimation

Presentation Summary
• Introduction
– Why do we Estimate?
– When do we Estimate?
– What do we Estimate?
– Guidelines for Estimation
• Estimation Techniques
– LOC
– Function Points

2
…Summary continued.
– Object Points
• Other Estimation Methods
– Wideband-Delphi
– PROBE
• Problems with Size Estimation
• Conclusion
• Discussion

SENG 621 - Software Size Estimation 3


Introduction – Why?
• Industry has a reputation for software being
over budget, late in delivery and low quality.
• Unreasonable time and budget
• Client satisfaction cannot be achieved with
poor quality software even if it is on time and
on budget.

SENG 621 - Software Size Estimation 4


…Introduction – Why?
• To avoid this, means must be developed to
accurately predict:
– The resources needed to generate the
deliverables
• Accurately predicting the size of a project
results in better project planning.

SENG 621 - Software Size Estimation 5


…Introduction – Why?
• To analyze past projects and apply lessons
learned from bad estimates.

SENG 621 - Software Size Estimation 6


Introduction – Why?
• Industry has a reputation for software being
over budget, late in delivery and low quality.
• Unreasonable time and budget
• Client satisfaction cannot be achieved with
poor quality software even if it is on time and
on budget.

SENG 621 - Software Size Estimation 7


…Introduction – Why?
• To avoid this, means must be developed to
accurately predict:
– The resources needed to generate the
deliverables
• Accurately predicting the size of a project
results in better project planning.

SENG 621 - Software Size Estimation 8


…Introduction – Why?
• To analyze past projects and apply lessons
learned from bad estimates.

SENG 621 - Software Size Estimation 9


…Introduction – When?
• As early as possible in the project.
– “At no other time are the estimates so important
than at the beginning of a project”
• Estimation is an iterative process, occurring
many times though out development.
• After requirements, analysis, design, coding,
testing, etc…

SENG 621 - Software Size Estimation 10


…Introduction – When?
• Whenever new information that affects the
project becomes available.
– “Predicting the size of a software system
becomes progressively easier as the
project advances”

SENG 621 - Software Size Estimation 11


…Introduction – What?
• Different phases in development can be
estimated:
– Requirements Documents
– Design Documents
– Code
– Test Cases
• Generally what is needed is an idea of the
scope of the project.
• Getting a feel for the size of project can
indicate how much of everything else is
needed. SENG 621 - Software Size Estimation 12
Example
Function Points ( FP )
The approach is to identify and count a number
of unique function types:
• external inputs (e.g. file names)
• external outputs (e.g. reports, messages)
• queries (interactive inputs needing a response)
• external files or interfaces (files shared with
other software systems)
• internal files (invisible outside the system)
Unadjusted function points
• Unadjusted function points ( UFP ) is
calculated as follows :
• The sum of all the occurrences is computed by
multiplying each function count with a
weighting and then adding up all the values.
Albrecht’s original method
classified the weightings as:
Function Type Low Average High

External Input x3 x4 x6

External Input x4 x5 x7

Logical Internal File x7 x10 x15

External Interface
x5 x7 x10
File

External Inquiry x3 x4 x6
Calculate FP
Table given
• The basic COCOMO equations take the form
• Effort Applied (E) = ab(KLOC)bb [ 
person-months ]
• Development Time (D) = cb(Effort
Applied)db [months]
• People required (P) = Effort Applied /
Development Time [count]
Intermediate Cocomo
• Intermediate COCOMO computes software
development effort as function of program
size and a set of "cost drivers" that include
subjective assessment of product, hardware,
personnel and project attributes. This
extension considers a set of four "cost
drivers",each with a number of subsidiary
attributes:-
• Product attributes
– Required software reliability
– Size of application database
– Complexity of the product
• Hardware attributes
– Run-time performance constraints
– Memory constraints
– Volatility of the virtual machine environment
– Required turnabout time
• Personnel attributes
– Analyst capability
– Software engineering capability
– Applications experience
– Virtual machine experience
– Programming language experience
• Project attributes
– Use of software tools
– Application of software engineering methods
– Required development schedule
• Each of the 15 attributes receives a rating on a six-
point scale that ranges from "very low" to "extra
high" (in importance or value). An effort multiplier
from the table below applies to the rating. The
product of all effort multipliers results in an effort
adjustment factor (EAF). Typical values for EAF range
from 0.9 to 1.4.
• The Intermediate Cocomo formula now takes the
form:
• E=ai(KLoC)(bi).EAF
• In detailed COCOMO, the effort is calculated as function
of program size and a set of cost drivers given according
to each phase of software life cycle.
• The five phases of detailed COCOMO are:-
• plan and requirement.
• system design.
• detailed design.
• module code and test.
• integration and test.
Detailed COCOMO
• Detailed COCOMO incorporates all characteristics of the
intermediate version with each step (analysis, design, etc.) of
the software engineering process.
• The detailed model uses different effort multipliers for each
cost driver attribute.
• These Phase Sensitive effort multipliers are each to determine
the amount of effort required to complete each phase.
• In detailed cocomo,the whole software is divided in different
modules and then we apply COCOMO in different modules to
estimate effort and then sum the effort
• COnstructive COst MOdel II (COCOMO® II) is a
model that allows one to estimate the cost,
effort, and schedule when planning a new
software development activity. COCOMO® II is
the latest major extension to the original
COCOMO® (COCOMO® 81) model published in
1981.
COCOMO® II can be used for the following
major decision situations
• Making investment or other financial decisions involving a software development
effort
• Setting project budgets and schedules as a basis for planning and control
• Deciding on or negotiating tradeoffs among software cost, schedule, functionality,
performance or quality factors
• Making software cost and schedule risk management decisions
• Deciding which parts of a software system to develop, reuse, lease, or purchase
• Making legacy software inventory decisions: what parts to modify, phase out,
outsource, etc
• Setting mixed investment strategies to improve organization's software capability,
via reuse, tools, process maturity, outsourcing, etc
• Deciding how to implement a process improvement strategy, such as that provided
in the SEI CMM
• COCOMO II has 17 cost drivers and 5 scale
drivers. The cost and scale drivers are
multiplicative factors that determine the
effort required to complete your software
project.
• Effort= a* (KLOC)b * EAF
The Scale Drivers
• In the COCOMO II model, some of the most important factors
contributing to a project's duration and cost are the Scale Drivers.
You set each Scale Driver to describe your project; these Scale
Drivers determine the exponent used in the Effort Equation.
• The 5 Scale Drivers are:
• Precedentedness
• Development Flexibility
• Architecture / Risk Resolution
• Team Cohesion
• Process Maturity
• Effort Adjustment Factor : The Effort
Adjustment Factor in the effort equation is
simply the product of the effort multipliers
corresponding to each of the cost drivers for
your project.
• E=ai(KLoC)(bi).EAF

You might also like