Software Cost Estimation

Slides:



Advertisements
Similar presentations
COST ESTIMATION TECHNIQUES AND COCOMO. Cost Estimation Techniques 1-)Algorithmic cost modelling 2-)Expert judgement 3-)Estimation by analogy 4)-Parkinsons.
Advertisements

Cost as a Business Driver 1 John Brown C Eng MIEE mr_ Software Cost Estimation.
Estimation using COCOMO More Science, Less Art. COCOMO History COCOMO History Constructive Cost Model Dr. Barry Boehm TRW in 1970s COCOMO
In The Name Of God Software Development Management Presentors: Mostafa Abdollahi Ehsan Khodarahmi Fall-2010.
Automated Software Cost Estimation By James Roberts EEL 6883 Spring 2007.
Copyright 2000, Stephan Kelley1 Estimating User Interface Effort Using A Formal Method By Stephan Kelley 16 November 2000.
Software Cost Estimation Main issues:  What factors determine cost/effort?  How to relate effort to development time?
The Comparison of the Software Cost Estimating Methods
1 COST ESTIMATION Basics, COCOMO, FP. 2 What is estimated? TIME MONEY TIME: –duration, chronological weeks, months, years –effort, person-month (man-month)
Software Project Planning CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 12, 2002.
Measuring process attributes. Good Estimates Predictions are needed for software development decision-making (figure 12.1) A prediction is useful only.
SOFTWARE PROJECT MANAGEMENT AND COST ESTIMATION © University of LiverpoolCOMP 319slide 1.
Chapter 23 – Project planning Part 2. Estimation techniques  Organizations need to make software effort and cost estimates. There are two types of technique.
Cost Management Week 6-7 Learning Objectives
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
Estimating Software Size Part I. This chapter first discuss the size estimating problem and then describes the PROBE estimating method used in this book.
Information System Economics Software Project Cost Estimation.
© The McGraw-Hill Companies, Software Project Management 4th Edition Software effort estimation Chapter 5.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Lecture 22 Instructor Paulo Alencar.
COCOMO Models Ognian Kabranov SEG3300 A&B W2004 R.L. Probert.
This document is proprietary to Project Consulting Group, Inc. and contains confidential information which is solely the property of Project Consulting.
Estimation Why estimate? What to estimate? When to estimate?
Project Management Estimation. LOC and FP Estimation –Lines of code and function points were described as basic data from which productivity metrics can.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 1 Chapter 23 Software Cost Estimation.
By K Gopal Reddy.  Metrics in software are of two types.direct and indirect.  Function points as indirect metrics.  Function points are used to measure.
CS /39 Illinois Institute of Technology CS487 Software Engineering David A. Lash.
1 Software Cost Estimation. Outline  Introduction  Inputs and Outputs  Methods of Estimation  COCOMO  Conclusion 2.
Software cost estimation Predicting the resources required for a software development process 1.
Cost Estimation What is estimated? –resources (humans, components, tools) –cost (person-months) –schedule (months) Why? –Personnel allocation –Contract.
Project Estimation Model By Deepika Chaudhary. Factors for estimation Initial estimates may have to be made on the basis of a high level user requirements.
Estimating Software Projects & Activity Scheduling in the Dynamic, Multi-Project Setting: Choosing Heuristics Through Deterministic Simulation.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 26 Slide 1 Software cost estimation 2.
Project Estimation techniques Estimation of various project parameters is a basic project planning activity. The important project parameters that are.
©Ian Sommerville 2000Software Engineering, 7th edition. Chapter 26Slide 1 Software cost estimation l Predicting the resources required for a software development.
SFWR ENG 3KO4 Slide 1 Management of Software Engineering Chapter 8: Fundamentals of Software Engineering C. Ghezzi, M. Jazayeri, D. Mandrioli.
Software Project Estimation IMRAN ASHRAF
Overview of COCOMO Reporter:Hui Zhang
1 Planning a Software Project. 2 Defining the Problem Defining the problem 1.Develop a definitive statement of the problem to be solved. Include a description.
©Ian Sommerville, adapted by Werner Wild 2004Project Management Slide 1 Software cost estimation u Predicting the resources required for a software development.
Estimation using COCOMO
Function Points Synthetic measure of program size used to estimate size early in the project Easier (than lines of code) to calculate from requirements.
Guide to Computer Forensics and Investigations, 2e CC20O7N Software Engineering 1 Guide to Computer Forensics and Investigations, 2e CC20O7N Software.
Estimating “Size” of Software There are many ways to estimate the volume or size of software. ( understanding requirements is key to this activity ) –We.
The COCOMO model An empirical model based on project experience. Well-documented, ‘independent’ model which is not tied to a specific software vendor.
Chapter 7: Project Cost Management
(6) Estimating Computer’s efficiency Software Estimation The objective of Software Estimation is to provide the skills needed to accurately predict the.
Chapter 5: Software effort estimation
بشرا رجائی برآورد هزینه نرم افزار.
(8) Potential required for planning with management Top-Down Estimating Method: Top-down estimating method is also called Macro Model. Using it, estimation.
Cost Estimation Software Quality Assurance and Testing.
Estimation Questions How do you estimate? What are you going to estimate? Where do you start?
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Chapter 33 Estimation for Software Projects
Project Cost Management
Software Cost Estimation
Presentation Topic.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 23 Estimation for Software Projects copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Constructive Cost Model
Software Development & Project Management
COCOMO Model Basic.
Chapter 5: Software effort estimation- part 2
Chapter 5: Software effort estimation
Activities During SPP Size Estimation
More on Estimation In general, effort estimation is based on several parameters and the model ( E= a + b*S**c ): Personnel Environment Quality Size or.
COCOMO Models.
Cost Estimation I've got Bad News and Bad News!.
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 23 Estimation for Software Projects copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Software Cost Estimation
Chapter 26 Estimation for Software Projects.
Presentation transcript:

Software Cost Estimation Seth Bowen Samuel Lee Lance Titchkosky 1. Appropriate to talk about s/w cost after s/w size estimation because: Both are types of estimation Methods of cost estimation often require size estimates (e.g., COCOMO)

Outline Introduction Inputs and Outputs Methods of Estimation COCOMO Conclusion

Cost Estimation Is Needed 55% of projects over budget 24 companies that developed large distributed systems (1994) 53% of projects cost 189% more than initial estimates Standish Group of 8,380 projects (1994) No recent values but in most course taken there is the general consensus that values haven’t changed much Additional cost is significant

Cost Estimation An approximate judgment of the costs for a project Many variables Often measured in terms of effort (i.e., person months/years) Different development environments will determine which variables are included in the cost value Management costs Development costs Training costs Quality assurance Resources 1. Software cost estimation will never be an exact science because there are too many variables Human  Can’t expect to get exact value Technical Environmental Political S/W development includes tasks with complexities that are difficult to judge 2. May have to take into account different development environments: 40 hr/wk North America, 35 hr/wk Europe

Cost Estimation Affects Planning and budgeting Requirements prioritization Schedule Resource allocation Project management Personnel Tasks There are finite amount of resources and so may not have enough for entire desired functionality What features can be included Reduce risk by scheduling costly tasks first Give more resources to costly projects (e.g., faster computers) 2. Similar to resource allocation - Assigning the more experienced personnel to costly projects/tasks - Sometimes called manpower loading – number of engineering and management personnel allocated to a project in a given amount of time

Cost Estimation During the Software Life Cycle Cost estimation should be done throughout the software life cycle to allow for refinement Need effective monitoring and control of the software costs to verify and improve accuracy of estimates At appropriate level of detail Gathering data should not be difficult Success of a cost estimate method is not necessarily the accuracy of the initial estimates, but rather the rate at which estimates converge to the actual cost 0. When is cost estimation done? - Do estimates at the beginning of a project after reqs have been clarified  could be done several times - E.g., bidding on a job, initial estimate on preliminary reqs  more detailed estimate afterwards The estimates should get progressively more accurate during the software life cycle - Helpful to have an automated method for re-estimating and collecting 2. - Appropriate level of detail is dependent upon situation - Monitoring shouldn’t be difficult otherwise it may not be done (automated, tools) 3. Of course, a company that does a lot of contract work must win bids and so the initial estimate method is very important

Who is the Estimator? Someone responsible for the implementation Can compare previous projects in organization to current project Usually experienced Someone from outside the organization Can provide unbiased estimate Tend to use empirical methods of estimation Difficulties: Lack of confidence that a model will outperform an expert Lack of historical data to calibrate the model The person responsible could be a developer or manager. Called analogy-based estimation Historical information is often from memory  experienced people The analog approach is fairly common. 2. Some people believe that it is better to have the estimates done by outsiders so that there is less chance of biased estimates. - Fewer politics involved, an estimator who is a developer may have more reason to give a very optimistic estimate to please the manager (short-term) - Empirical methods will include equations - Use equations because don’t know organization and previous projects as well as someone inside the organization - No estimation model is appropriate for all classes of software, and in all development environments. Often, the estimation models need to be calibrated for local needs

General Steps and Remarks Establish Plan What data should we gather Why are we gathering this data What do we hope to accomplish Do cost estimation for initial requirements Decomposition Use several methods There is no perfect technique If get wide variances in methods, then should re-evaluate the information used to make estimates 0. Didn’t put numbers because there is some overlap in the sequence of the main points (not completely sequential) 3. Important to use more than one method

General Steps and Remarks (cont.) Do re-estimates during life cycle Make any required changes to development Do a final assessment of cost estimation at the end of the project

Software Cost Estimation Process Definition A set of techniques and procedures that is used to derive the software cost estimate Set of inputs to the process and then the process will use these inputs to generate the output

Inputs and Outputs to the Estimation Process Classical view of software estimation process [Vigder/Kark]

Inputs and Outputs to the Estimation Process (Cont.) Actual cost estimation process [Vigder/Kark]

Cost Estimation Accuracy To determine how well a cost estimation model predicts Assessing model performance Absolute Error = (Epred – Eact) Percentage Error = (Epred – Eact) / Eact Mean Magnitude of Relative Error

Cost Estimation Methods Algorithmic (Parametric) model Expert Judgment (Expertise Based) Top – Down Bottom – Up Estimation by Analogy Price to Win Estimation

Algorithmic (Parametric) Model Use of mathematical equations to perform software estimation Equations are based on theory or historical data Use input such as SLOC, number of functions to perform and other cost drivers Accuracy of model can be improved by calibrating the model to the specific environment

Algorithmic (Parametric) Model (Cont.) Examples: COCOMO (COnstructive COst MOdel) Developed by Boehm in 1981 Became one of the most popular and most transparent cost model Mathematical model based on the data from 63 historical software project COCOMO II Published in 1995 To address issue on non-sequential and rapid development process models, reengineering, reuse driven approaches, object oriented approach etc Has three submodels – application composition, early design and post-architecture

Algorithmic (Parametric) Model (Cont.) Putnam’s software life-cycle model (SLIM) Developed in the late 1970s Based on the Putnam’s analysis of the life-cycle in terms of a so-called Rayleigh distribution of project personnel level versus time. Quantitative software management developed three tools : SLIM-Estimate, SLIM-Control and SLIM-Metrics.

Algorithmic (Parametric) Model (Cont.) Advantages Generate repeatable estimations Easy to modify input data Easy to refine and customize formulas Objectively calibrated to experience Disadvantages Unable to deal with exceptional conditions Some experience and factors can not be quantified Sometimes algorithms may be proprietary

Expert Judgment Capture the knowledge and experience of the practitioners and providing estimates based upon all the projects to which the expert participated. Examples Delphi Developed by Rand Corporation in 1940 where participants are involved in two assessment rounds. Work Breakdown Structure (WBS) A way of organizing project element into a hierarchy that simplifies the task of budget estimation and control

Expert Judgment (Cont.) Advantages Useful in the absence of quantified, empirical data. Can factor in differences between past project experiences and requirements of the proposed project Can factor in impacts caused by new technologies, applications and languages. Disadvantages Estimate is only as good expert’s opinion Hard to document the factors used by the experts

Top - Down Also called Macro Model Derived from the global properties of the product and then partitioned into various low level components Example – Putnam model

Top – Down (Cont.) Advantages Disadvantages Requires minimal project detail Usually faster and easier to implement Focus on system level activities Disadvantages Tend to overlook low level components No detailed basis

Bottom - Up Cost of each software components is estimated and then combine the results to arrive the total cost for the project The goal is to construct the estimate of the system from the knowledge accumulated about the small software components and their interactions An example – COCOMO’s detailed model

Bottom – Up (Cont.) Advantages Disadvantages More stable More detailed Allow each software group to hand an estimate Disadvantages May overlook system level costs More time consuming

Estimation by Analogy Comparing the proposed project to previously completed similar project in the same application domain Actual data from the completed projects are extrapolated Can be used either at system or component level

Estimation by Analogy (Cont.) Advantages Based on actual project data Disadvantages Impossible if no comparable project had been tackled in the past. How well does the previous project represent this one

Price to Win Estimation Price believed necessary to win the contract Advantages Often rewarded with the contract Disadvantages Time and money run out before the job is done

COCOMO 81 COCOMO stands for COnstructive COst MOdel It is an open system First published by Dr Barry Bohem in 1981 Worked quite well for projects in the 80’s and early 90’s Could estimate results within ~20% of the actual values 68% of the time

COCOMO 81 COCOMO has three different models (each one increasing with detail and accuracy): Basic, applied early in a project Intermediate, applied after requirements are specified. Advanced, applied after design is complete COCOMO has three different modes: Organic – “relatively small software teams develop software in a highly familiar, in-house environment” [Bohem] Embedded – operate within tight constraints, product is strongly tied to “complex of hardware, software, regulations, and operational procedures” [Bohem] Semi-detached – intermediate stage somewhere between organic and embedded. Usually up to 300 KDSI

COCOMO 81 COCOMO uses two equations to calculate effort in man months (MM) and the number on months estimated for project (TDEV) MM is based on the number of thousand lines of delivered instructions/source (KDSI) MM = a(KDSI)b * EAF TDEV = c(MM)d EAF is the Effort Adjustment Factor derived from the Cost Drivers, EAF for the basic model is 1 The values for a, b, c, and d differ depending on which mode you are using The Intermediate Model estimates the software development effort by using fifteen cost driver variables besides the size variable used in Basic COCOMO. Product Attributes RELY:  Required Software Reliability The extent to which the software product must perform its intended functions satisfactorily over a period of time. DATA:  Data Base Size The degree of the total amount of data to be assembled for the data base. CPLX:  Software Product Complexity The level of complexity of the product to be developed. Computer Attributes TIME --- Execution Time Constraint The degree of the execution constraint imposed upon a software product. STOR --- Main Storage Constraint The degree of main storage constraint imposed upon a software product. VIRT --- Virtual Machine Volatility The level of the virtual machine underlying the product to be developed. TURN --- Computer Turnaround Time The level of computer response time experienced by the project team developing the product. Personnel Attributes ACAP:  Analyst Capability The level of capability of the analysts working on a software product. AEXP:  Applications Experience The level of applications experience of the project team developing the software product. PCAP:  Programmer Capability The level of capability of the programmers working on the software product. VEXP:  Virtual Machine Experience The level of virtual machine experience of the project team developing the product. LEXP:  Programming Language Experience The level of programming language experience of the project team developing the product. Project Attributes MODP:  Use of Modern Programming Practices The degree to which modern programming practices (MPPs) are used in developing software product. TOOL:  Use of Software Tools The degree to which software tools are used in developing the software product. SCED:  Schedule Constraint The level of schedule constraint imposed upon the project team developing the software product. Mode a b c d Organic 2.4 1.05 2.5 0.38 Semi-detached 3.0 1.12 0.35 Embedded 3.6 1.20 0.32

COCOMO 81 A simple example: Project is a flight control system (mission critical) with 310,000 DSI in embedded mode Reliability must be very high (RELY=1.40).  So we can calculate: Effort = 1.40*3.6*(319)1.20 = 5093 MM Schedule = 2.5*(5093)0.32 = 38.4 months Average Staffing = 5093 MM/38.4 months = 133 FSP

COCOMO II Main objectives of COCOMO II: To develop a software cost and schedule estimation model tuned to the life cycle practices of the 1990’s and 2000’s To develop software cost database and tool support capabilities for continuous model improvement From “Cost Models for Future Software Life Cycle Processes: COCOMO 2.0," Annals of Software Engineering, (1995).

COCOMO II Has three different models: The Application Composition Model Good for projects built using rapid application development tools (GUI-builders etc) The Early Design Model This model can get rough estimates before the entire architecture has been decided The Post-Architecture Model Most detailed model, used after overall architecture has been decided on The Application Composition Model Suitable for projects built with modern GUI-builder tools. Based on new Object Points. The Early Design Model You can use this model to get rough estimates of a project's cost and duration before you've determined it's entire architecture. It uses a small set of new Cost Drivers, and new estimating equations. Based on Unadjusted Function Points or KSLOC. The Post-Architecture Model This is the most detailed COCOMO II model. You'll use it after you've developed your project's overall architecture. It has new cost drivers, new line counting rules, and new equations.

COCOMO II Differences The exponent value b in the effort equation is replaced with a variable value based on five scale factors rather then constants Size of project can be listed as object points, function points or source lines of code (SLOC). EAF is calculated from seventeen cost drivers better suited for today's methods, COCOMO81 has fifteen A breakage rating has been added to address volatility of system 9. Does COCOMO II replace traditional COCOMO? You should use COCOMO II for most of your new projects. COCOMO 81 is still the best approach for some software projects. If you're using a fairly traditional approach, and using a 3GL (third generation language), such as C, Fortran, or Cobol, the original COCOMO will give you good results.  If your development tools and processes haven't changed much in recent years, COCOMO 81 might be the right model for you. If you're using more modern tools, a new development process model, a 4GL language, or tools like Visual Basic, Delphi, or Power Builder, you might find that COCOMO II makes more sense. When in doubt, try to model your project using both the traditional COCOMO and COCOMO II.

COCOMO II Calibration For COCOMO II results to be accurate the model must be calibrated Calibration requires that all cost driver parameters be adjusted Requires lots of data, usually more then one company has The plan was to release calibrations each year but so far only two calibrations have been done (II.1997, II.1998) Users can submit data from their own projects to be used in future calibrations

Importance of Calibration Proper calibration is very important The original COCOMO II.1997 could estimate within 20% of the actual values 46% of the time. This was based on 83 data points. The recalibration for COCOMO II.1998 could estimate within 30% of the actual values 75% of the time. This was based on 161 data points.

Is COCOMO the Best? COCOMO is the most popular method however for any software cost estimation you should really use more then one method Best to use another method that differs significantly from COCOMO so your project is examined from more then one angle Even companies that sell COCOMO based products recommend using more then one method. Softstar (creators of Costar) will even provide you with contact information for their competitor’s products

COCOMO Conclusions COCOMO is the most popular software cost estimation method Easy to do, small estimates can be done by hand USC has a free graphical version available for download Many different commercial version based on COCOMO – they supply support and more data, but at a price

Conclusions Project costs are being poorly estimated The accuracy of cost estimation has to be improved Data collection Use of tools Use several methods of estimation

References Boehm B., Clark B., Horowitz E., Madachy R., Shelby R., Westland C. (1995). Cost Models for Future Software Life Cycle Processes: COCOMO 2.0, Annals of Software Engineering. http://sunset.usc.edu/research/COCOMOII/Docs/stc.pdf. Boehm B., Clark B., Horowitz E., Madachy R., Shelby R., Westland C. (1995). An Overview of the COCOMO 2.0 Software Cost Model. http://sunset.usc.edu/research/COCOMOII/Docs/stc.pdf. Boehm B., Chulani S., Clark B. (1997). Calibration Results of COCOMO II.1997. http://sunset.usc.edu/publications/TECHRPTS/1998/usccse98-502/CalPostArch.pdf. Boehm B., Chulani S., Clark B. (1997). Calibrating the COCOMO II Post Architecture Model. http://sunset.usc.edu/Research_Group/Sunita/down/calpap.pdf. Boehm B., Chulani S., Reifer D., The Rosetta Stone: Making COCOMO 81 Files Work With COCOMO II. http://sunset.usc.edu/publications/TECHRPTS/1998/usccse98-516/usccse98-516.pdf. Chulani, S. (1998). Software Development Cost Estimation Approaches – A Survey. IBM Research. Humphrey, W.S. (1990). Managing the Software Process. Addison-Wesley Publishing Company, New York, NY.

References Hussein, A. (2001). Introduction to Software Process Management. University of Calgary, Calgary, Canada. http://sern.ucalgary.ca/courses/SENG/621/W01/intro.ppt. Londeix, B. (1987). Cost Estimation for Software Development. Addison-Wesley Publishing Company, New York, NY. Pressman, R.S. (2001). Software Engineering: A Practitioner’s Approach. McGraw-Hill Higher Education, New York, NY. Vigder, M. R. and Kark, A. W. (1994). Software Cost Estimation and Control. Software Engineering Institute for Information Technology. http://wwwsel.iit.nrc.ca/seldocs/cpdocs/NRC37116.pdf. Wu, L. (1997). The comparison of the Software Cost Estimating Methods. University of Calgary, Calgary, Canada. http://sern.ucalgary.ca/courses/seng/621/W97/wul/seng621_11.html. Basic COCOMO Software Cost Model. http://www.jsc.nasa.gov/bu2/COCOMO.html. COCOMO 2, Softstar Systems. http://www.softstarsystems.com/cocomo2.htm. Answers to Frequently Asked Questions, Softstar Systems. http://www.softstarsystems.com/faq.htm.

Questions and Discussion How many of you see cost estimation done in your organizations? What types of experiences have you had with COCOMO?