Software Estimation Technique By……… Abhijit Karmakar Subhra Roy Arnab Ray Joy Banerjee Soumyadeep Bhattacharya
Topic Overview • The “Bad News” • Why estimate ? • Why is it difficult? • What can be done about? Some approaches. • LOC • FPM • COCOMO Model
Why are we bad at estimating?
• Infrequency - How often do we do the "same thing" •
Vs manufacturing or construction
•
Underestimation bias
•
Computers are "easy"; software is "easy"
•
We deal with Goals not estimates
Why Estimate Software? • 30% of project never complete • 100-200% cost overruns not uncommon • Average project exceeds cost by 90%; Schedule by 120% • 15% of large project never deliver anything • Only 16.2% of projects are successful
Problem for Estimates
•
Software development is then a gradual process of refinements of requirements.
• Yet, in the face of existing evidence, some companies want cost estimates to within ± 10%.
• We often begin with a fuzzy picture
Earlier Estimation • No "real" money in the bid • Must estimate on your dollar • What is important for this estimate • Can I compare to history • Done as quickly and cheaply as possible • How important is it?
Common Estimation Methods • Decomposition techniques - project is decomposed into tasks until an estimate for each task can be made.
• Empirical models for the estimation using past experience to predict cost and effort.
• Automated estimation tools that use a combination of
decomposition and empirical models, but develop the estimates automatically from project information.
Effort Estimation
Size Estimation
Duration
Cost Estimation
Staffing Estimation
Scheduling
Software Estimation Diagram
Estimation Process Overview Three Steps: • Estimate size of the product
(LOC, function points and/or history of similar projects) • Estimate the effort (person months) • Estimate the schedule (calendar months).
Cooperation & Covergence • Help customers by telling
the parts you are able to estimate accurately
• Tell customers you will
Actual Schedule
Estimate too high
refine estimates at the end of various phases.
• Estimates too low ⇒
planning inefficiencies which drive costs up
• Estimates too high ⇒
Parkinson’s law drives up actual costs.
minimum actual schedule
actual schedule = estimated schedule
Estimate too low
Estimated Schedule
Lines of code (LOC) • What's a line of code? – Proposed when programs were typed on cards with one line per card – In modern languages, a statement can span several lines or there can be several statements on one line
Disadvantage of LOC • Size varies with coding. • Focus on coding activities. • Difficult to estimate.
Function Points Metrics • To overcome some of the short coming of LOC • It was proposed by Albreacht in1980’s. • FP=4#input +5#output + 4#inquries +10#files +10#interfaces.
COCOMO COnstructive COst MOdel
• Constructive Cost Model proposed by BOEHM. • An empirical model based on project experience • Well-documented, ‘independent’ model which is not tied to a specific software vendor
• Long history from initial version published in 1981 (COCOMO-81)
• COCOMO takes into account different approaches to software development, reuse, etc.
COCOMO COnstructive COst MOdel
It divides the software product development into three categories. Organic Semidetached Embedded
COCOMO COnstructive COst MOdel
COCOMO COnstructive COst MOdel • COCOMO is a 3 level model that allows increasingly detailed • • •
estimates to be prepared as development progresses Early prototyping level – Object points and a simple formula is used for effort estimation Early design level – Function points that are then translated to LOC Post-architecture level – Lines of source code
Estimation vs Control
Product Size
Product Size Initial desired feature set Features Resources Initial available resources Evolution of Product
Initial desired feature set Features Resources Initial available resources Evolution of Product
Estimation accuracy • Estimation accuracy The size of a software system can only be known accurately when it is finished Several factors influence the final size
• Use of components Programming language Distribution of system
• As the development process progresses then the size estimate becomes more accurate
THANK YOU………..