Estimating Size and Effort



Similar documents
Software Development: Tools and Processes. Lecture - 16: Estimation

Cost Estimation Strategies COST ESTIMATION GUIDELINES

Project Planning and Project Estimation Techniques. Naveen Aggarwal

Finally, Article 4, Creating the Project Plan describes how to use your insight into project cost and schedule to create a complete project plan.

Software cost estimation

Module 11. Software Project Planning. Version 2 CSE IIT, Kharagpur

A Comparison of Calibrated Equations for Software Development Effort Estimation

CS Homework 4 p. 1. CS Homework 4. To become more familiar with top-down effort estimation models, especially COCOMO 81 and COCOMO II.

Lecture 14: Cost Estimation

Chapter 23 Software Cost Estimation

Chapter 6 (part 1) Project Time Management. (Project Scheduling)

Article 3, Dealing with Reuse, explains how to quantify the impact of software reuse and commercial components/libraries on your estimate.

Software cost estimation. Predicting the resources required for a software development process

Software cost estimation

Module 11. Software Project Planning. Version 2 CSE IIT, Kharagpur

Project Management for Scientists

Project Planning. COSC345 Lecture 3 Slides: Andrew Trotman Dramatic presentation: Richard O Keefe. Software Engineering 2013

Software Engineering CSCI Lesson 9 Project Management Part 1- Planning & Estimating. February 23, 2015

SoftwareCostEstimation. Spring,2012

CISC 322 Software Architecture

Contents. Today Project Management. Project Management. Last Time - Software Development Processes. What is Project Management?

WBS, Estimation and Scheduling. Adapted from slides by John Musser

Extending Change Impact Analysis Approach for Change Effort Estimation in the Software Development Phase

PMI PMBOK & ESTIMATING PMI PMBOK & ESTIMATING PMI PMBOK & ESTIMATING PMI PMBOK & ESTIMATING PMI PMBOK & ESTIMATING PMI PMBOK & ESTIMATING

MTAT Software Economics. Lecture 5: Software Cost Estimation

How To Improve Software Quality

Handbook for Software Cost Estimation

Effect of Schedule Compression on Project Effort

Comparison of SDLC-2013 Model with Other SDLC Models by Using COCOMO

Schedule Risk Analysis Simplified 1 by David T. Hulett, Ph.D.

Deducing software process improvement areas from a COCOMO II-based productivity measurement

Knowledge-Based Systems Engineering Risk Assessment

Chapter 3 Managing the Information Systems (IS) Project

Cost Estimation Driven Software Development Process

Software Failures. Dr. James A. Bednar. Dr. David Robertson

How To Estimate A Project

ICS 121 Lecture Notes Spring Quarter 96

Simulation for Business Value and Software Process/Product Tradeoff Decisions

An Evaluation of Neural Networks Approaches used for Software Effort Estimation

Estimation Tools. Seminar on Software Cost Estimation WS 02/03. Presented by Christian Seybold

Fuzzy Logic based framework for Software Development Effort Estimation

Software Project Scheduling under Uncertainties

Project management Project Management

Software Requirements Metrics

PROJECT RISK MANAGEMENT

SOFTWARE ECONOMICS UNIT 15. Presented by. Stefano Street

Software Project Management Matrics. Complied by Heng Sovannarith

A Case Study Research on Software Cost Estimation Using Experts Estimates, Wideband Delphi, and Planning Poker Technique

COCOMO-SCORM Interactive Courseware Project Cost Modeling

Feasibility of a Software Process Modeling Library based on MATLAB / Simulink

A New Approach in Software Cost Estimation with Hybrid of Bee Colony and Chaos Optimizations Algorithms

Software Estimation Techniques - Common Test Estimation Techniques used in SDLC

Systems Analysis and Design Life Cycle

Topics. Project plan development. The theme. Planning documents. Sections in a typical project plan. Maciaszek, Liong - PSE Chapter 4

CSSE 372 Software Project Management: Software Estimation With COCOMO-II

Project Management Dr. James A. Bednar

Amajor benefit of Monte-Carlo schedule analysis is to

Cost Estimation for Secure Software & Systems

Project Management. Software Projects vs. Engineering Projects

Project Management. Lecture 3. Software Engineering CUGS. Spring 2012 (slides made by David Broman) Kristian Sandahl

Module 11. Software Project Planning. Version 2 CSE IIT, Kharagpur

CISC 322 Software Architecture. Example of COCOMO-II Ahmed E. Hassan

A DIFFERENT KIND OF PROJECT MANAGEMENT: AVOID SURPRISES

Summary of GAO Cost Estimate Development Best Practices and GAO Cost Estimate Audit Criteria

Pragmatic Peer Review Project Contextual Software Cost Estimation A Novel Approach

A Concise Neural Network Model for Estimating Software Effort

Quantitative Risk Analysis with Microsoft Project

How To Manage Project Management

Risk Analysis: a Key Success Factor for Complex System Development

Project Management Process

11.1 What is Project Management? Object-Oriented Software Engineering Practical Software Development using UML and Java. What is Project Management?

5 Comparison with the Previous Convergence Programme and Sensitivity Analysis

Software Development Cost and Time Forecasting Using a High Performance Artificial Neural Network Model

E-COCOMO: The Extended COst Constructive MOdel for Cleanroom Software Engineering

Project Risk Management

SAPM Overview. Semester Summary. Project management. Tools (1) Dr. James A. Bednar

Spreadsheets have become the principal software application for teaching decision models in most business

Literature Survey on Algorithmic Methods for Software Development Cost Estimation

Lifecycle Models: Waterfall / Spiral / EVO

Define Activities Sequence Activities Estimate Activity Resources Estimate Activity Durations Develop Schedule Control Schedule

Project Time Management

SE351a: Software Project & Process Management

CALCULATING THE COSTS OF MANUAL REWRITES

The Plan s Journey From Scope to WBS to Schedule

Software Cost Estimation using Function Point with Non Algorithmic Approach

Improving Software Project Management Skills Using a Software Project Simulator

Transcription:

Estimating Size and Effort Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson dr@inf.ed.ac.uk http://www.inf.ed.ac.uk/ssp/members/dave.htm SAPM Spring 2007: Estimation 1

Estimating SW Size and Effort Most methods for estimating the total effort required for a software project (to decide on schedule, staffing, and feasibility) depend on the size of the software project. Unfortunately, it is difficult to measure size meaningfully, it is difficult to estimate size in advance, and it is difficult to extrapolate from size to what we are really interested in. We will first look at methods for estimating size, then at how size can be used to estimate effort (e.g. using COCOMO). SAPM Spring 2007: Estimation 2

Three-Point Estimates If you just ask someone for an estimate of how long a task will take, the answers you get will vary enormously, depending on how they interpret the question. Worst case? Best case? Etc. Instead, estimates are typically done using three points: o = Optimistic estimate (best 2.5%) m = Most likely estimate p = Pessimistic estimate (worst 2.5%) SAPM Spring 2007: Estimation 3

Using Three-Point Estimates A single estimate can be computed from a three-point estimate as: E = o + 4m + p 6 SD = p o 6 These calculations are from the PERT method (discussed later), assuming that the actual values will have a Gaussian distribution. People still underestimate the pessimistic case (Vose 1996), but the results are more repeatable than simply asking for a single number at the start. (1) (2) SAPM Spring 2007: Estimation 4

Approaches to Estimating Size Through expert consensus (Wideband-Delphi) From historical population data (Fuzzy logic) From standard components (Component estimating) From a model of function (Function points) See Humphrey (2002) for more information on these methods and other more complicated ones. SAPM Spring 2007: Estimation 5

Wideband-Delphi Estimating 1. Group of experts: [E 1,..., E i,..., E n ] 2. All E i meet to discuss project 3. Each anonymously estimates size: [X 1,..., X i,..., X n ] 4. Each E i gets to see all X j (anonymously) 5. Stop if the estimates are sufficiently close together 6. Otherwise, back to step 2 Helps get a group of engineers committed to a particular schedule. SAPM Spring 2007: Estimation 6

Fuzzy-Logic Estimating Break previous products into categories by size: Range Nominal KLOC KLOC range included V Small 2 1 4 Small 8 4 16 Medium 32 16 64 Large 128 64 256 V Large 512 256 1028 Then look at the previous projects in each category and decide which category contains projects similar to this one. Problem: Only a very rough estimate, yet requires several relevant historical datapoints in each range (rare) SAPM Spring 2007: Estimation 7

Standard Component Estimating Gather historical data on types and sizes of key components For each type (i), guess how many you will need (M i ) Also guess largest (L i ) and smallest (S i ) extremes Estimated number (E i ) is a function of M i, L i and S i, e.g.: E i = (S i + 4M i + L i )/6 Total size calculated from estimated number and average size (X i ) of each type: X = i E ix i Helps break down a large project into more-easily guessable chunks. SAPM Spring 2007: Estimation 8

Function Point Estimating (1) Popular method based on a weighted count of common functions of software. The five basic functions are: Inputs : Sets of data supplied by users or other programs Outputs : Sets of data produced for users or other programs Inquiries : Means for users to interrogate the system Data files : Collections of records which the system modifies Interfaces : Files/databases shared with other systems SAPM Spring 2007: Estimation 9

Function Point Estimating (2) Function Count Weight Total Inputs 8 4 32 Outputs 12 5 60 Inquiries 4 4 16 Data files 2 10 20 Interfaces 1 7 7 Total 135 May adjust function point total using influence factors. SAPM Spring 2007: Estimation 10

Estimating Total Effort Once we have the size estimate, we can try to estimate the total effort involved, e.g. in person-months, e.g. to decide on staffing levels. Unfortunately, the total amount of effort required depends on the staffing levels cf. The Mythical Man-Month (Brooks 1995). So it is easy to get stuck in circular reasoning. Still, with some big assumptions, it is possible to try to use historical experience with similarly sized projects. SAPM Spring 2007: Estimation 11

COCOMO Model The Constructive Cost Model (COCOMO; Boehm 1981) is popular for effort estimation. COCOMO is a mathematical equation that can be fit to measurements of effort for different-sized completed projects, providing estimates for future projects. COCOMO II (Boehm et al. 1995) is the current version (see http://sunset.usc.edu/research/cocomoii/), but we will focus on the original simpler equation. All we are hoping to get is a rough (order of magnitude) estimate. SAPM Spring 2007: Estimation 12

Basic COCOMO Model In its simplest form COCOMO is: where: E = C P s M E is the estimated effort (e.g. in person-months) C is a complexity factor P is a measure of product size (e.g. KLOC) s is an exponent (usually close to 1) M is a multiplier to account for project stages SAPM Spring 2007: Estimation 13

Basic COCOMO Model Examples We ignore the multiplier, M, so E = C P s. Then we fit C and s to historical data from different types of projects: Simple (E = 2.4 P 1.05 ) : A well understood application developed by a small team. Intermediate (E = 3.0 P 1.12 ) : A more complex project for which team members have limited experience of related systems. Embedded (E = 3.6 P 1.20 ) : A complex project in which the software is part of a complex of hardware, software, regulations and operational constraints. SAPM Spring 2007: Estimation 14

Behavior of the Basic Examples 1000 Embedded Person months Intermediate Simple 0 0 K Lines of Source Code 120 SAPM Spring 2007: Estimation 15

Extending the COCOMO Model The basic examples didn t use the multiplier, M. M can be used to adjust the basic estimate by including expert knowledge of the specific attributes of this project. Potential attributes/constraints to consider: Product attributes (e.g. reliability) Computer attributes (e.g. memory constraints) Personnel attributes (e.g. programming language experience) Project attributes (e.g. project development schedule) SAPM Spring 2007: Estimation 16

COCOMO Multiplier Example 1 If the basic estimate is 1216 person-months, can add estimates of the effect of various constraints or attributes: Attribute Magnitude Multiplier Reliability V high 1.4 Complexity V high 1.3 Memory constraint High 1.2 Tool use Low 1.1 Schedule Accelerated 1.23 New E: 1216 1.4 1.3 1.2 1.1 1.23 = 3593 SAPM Spring 2007: Estimation 17

COCOMO Multiplier Example 2 Using the basic estimate of 1216 person-months, changing estimates of the constraints/attributes changes the result: Attribute Magnitude Multiplier Reliability V low 0.75 Complexity V low 0.7 Memory constraint None 1 Tool use High 0.9 Schedule Normal 1 New E: 1216 0.75 0.7 1 0.9 1 = 575 SAPM Spring 2007: Estimation 18

COCOMO Limitations 1 Like any mathematical model, COCOMO has two main potential types of error: model error and parameter error. Model error: Do projects really scale with KLOC as modeled? From the COCOMO II web site: The 1998 version of the model has been calibrated to 161 data points [projects]... Over those 161 data points, the 98 release demonstrates an accuracy of within 30% of actuals 75% of the time. Thus even looking retroactively, with accurate KLOC estimates, 25% of projects are more than 30% mis-estimated. SAPM Spring 2007: Estimation 19

COCOMO Limitations 2 Parameter estimation error: Can the various parameters be set meaningfully? E.g. result depends crucially on KLOC, which is difficult to estimate accurately. The other parameters can also be difficult to estimate for a new project, particularly at the beginning when scheduling and feasibility need to be decided. SAPM Spring 2007: Estimation 20

Estimation Limitations Model predictions can be sensitive to small changes in parameters, so be sure to perform a sensitivity analysis for different parameter estimates. In any case, early estimates are likely to be wrong, and should be revised once more data is available. Also, predictions can strongly affect the outcome: If estimate is too high, programmers may relax and work on side issues or exploring many alternatives If estimate is too low, quality may be sacrificed to meet the deadline SAPM Spring 2007: Estimation 21

Summary No size estimation method is foolproof or particularly accurate Even once size is available, hard to extrapolate to effort, cost, estimated schedule, etc. Estimates can be self-fulfilling or self-defeating Thus it is difficult to evaluate how well estimation is working, even retroactively Use an appropriate method for how much data you have if no data, then gut instinct estimation is reasonable Try to avoid depending on your estimates being accurate SAPM Spring 2007: Estimation 22

References Boehm, B. (1981). Software Engineering Economics. Englewood Cliffs, NJ: Prentice-Hall. 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. Brooks, F. P., Jr. (1995). The Mythical Man-Month. Reading, MA: Addison-Wesley. Expanded reprint of 1975 edition. Humphrey, W. S. (2002). A Discipline for Software Engineering. Reading, MA: Addison-Wesley. SAPM Spring 2007: Estimation 22

Vose, D. (1996). Quantitative Risk Analysis: A Guide to Monte Carlo Simulation Modelling. John Wiley and Sons. SAPM Spring 2007: Estimation 22