Professional Documents
Culture Documents
06 Softeng Estimation Techniques
06 Softeng Estimation Techniques
Software Engineering
Prof. Dr. Bertrand Meyer
March 2007 – June 2007
Costs
Based on estimations
Duration
Schedule Resources Hiring
Milestones
Resource
allocation
Estimations in software projects
Mostly
personnel cost
Costs (effort)
Travel, training
Hardware,
software
Duration is Effort
essentially effort /
resources
Schedule Resources
Overview
Estimation Techniques
Empirical Estimations
Algorithmical Estimations
Estimation Process
Estimation Exercise
Estimation Techniques
Empirical Estimations
Algorithmical Estimations
Estimation Process
Empirical estimation: Expert judgment
Involve experts in
¾ Development techniques
¾ Application domain
Estimation by analogy
¾ Comparison with similar projects
¾ Analysis of differences
¾ Typical example: SAP introduction
Pros Cons
Quicker and less Underestimation of
expensive than other difficult technical
methods problems likely
Can be done early in the No detailed justification
project of estimate
Be aware of scalability
problems!
Top-down estimation: Delphi method
¾ Analysis 20%
Analysis
¾ Design 40% Test
¾ Implementation 15%
¾ Test 25% Design
Implementation
Estimation by decomposition
¾ Estimating the effort for individual work packages
¾ Cost and accuracy depend on size of the work
packages
Pros Cons
See “cons” of top-down Underestimation because
estimation effort does not grow
linearly (due to
complexity, etc.)
Underestimation of
integration effort
Requires initial system
design
Program evaluation and review technique
Estimation Techniques
Empirical Estimations
Algorithmical Estimations
Estimation Process
Algorithmic estimation of software
Important examples
¾ Function point analysis
¾ Constructive cost model (COCOMO)
Measuring size: Lines of code
Inputs
Internal files
Inquiries
Function
External files
Outputs
Functions
Inputs
¾ Forms, dialogs, messages, XML documents
Outputs
¾ Web pages, reports, graphs, messages, XML
documents
Inquiries (input/output combinations)
¾ Simple web inputs, generally producing a single output
Logical internal files (controlled by the program)
¾ Tables, views or files in database
External files (controlled by other programs)
¾ Tables or files used from other systems or databases
Complexity of functions
Factor Simple Average Complex
Inputs 3 4 6
Outputs 4 5 7
Inquiries 3 4 6
Ext. files 7 10 15
Int. files 5 7 10
Determine
complexity of Input Simple Average Complex
each function Data 1-5 6-10 >10
Weight each elements
function Checking Formal Formal, Formal, logical,
according to logical requires DB access
complexity
Cost factors
Pros Cons
Based on requirements Estimation of overall
(instead of code size) effort (not per phase)
Can be applied in early Tailored towards
project phases functional decomposition
Can be calibrated (for (rather than OO)
company, project type) Tailored towards
Counting standards by information systems
“International Function Needs calibration to
Points User Group” produce reliable results
Technology-independent
Estimation techniques: Discussion
Empirical studies
Empirical Estimation Algorithmic Estimation
Accurate if experts
¾ Do not show are Very
that uncalibrated accurateestimation
algorithmic if model is
experienced
is, in general, more accurate calibrated
Experts can be strongly Calibration is very
¾ Show that algorithmic estimation is more accurate
biased (over-optimism) difficult and expensive
than experts who do not have important domain
knowledge Estimation is expensive
Other estimation strategies
Estimation Techniques
Empirical Estimations
Algorithmical Estimations
Estimation Process
Estimate types
Why? Accuracy?
Audience? Generate
effort
estimate
Duration = √Effort
Duration = 3.0 × Effort1/3
Determine
(Effort in person months, Document
team size and
Duration in months) assumptions
duration
Effort = Duration × Team Size
Validate and
Document
Different method, review finalize
Estimation tips