Lecture 4 Project Estimation CSCI – 3350 Software Engineering II Fall 2014 Bill Pine.

Slides:



Advertisements
Similar presentations
Software Cost Estimation Main issues:  What factors determine cost/effort?  How to relate effort to development time?
Advertisements

Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Software.
So far.. We have covered a) Requirements gathering: observation & interview. b) Requirements specification. c) Requirements validation. d) Design/paper.
Project Risks and Feasibility Assessment Advanced Systems Analysis and Design.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 1 Software Cost Estimation.
Software project management (intro)
Ch8: Management of Software Engineering. 1 Management of software engineering  Traditional engineering practice is to define a project around the product.
1 COST ESTIMATION Basics, COCOMO, FP. 2 What is estimated? TIME MONEY TIME: –duration, chronological weeks, months, years –effort, person-month (man-month)
Measuring process attributes. Good Estimates Predictions are needed for software development decision-making (figure 12.1) A prediction is useful only.
CSC 395 – Software Engineering
Chapter 23 – Project planning Part 2. Estimation techniques  Organizations need to make software effort and cost estimates. There are two types of technique.
Software Cost Estimation Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
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.
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec22 1 Lecture 22: Software Measurement Basics of software measurement.
© The McGraw-Hill Companies, Software Project Management 4th Edition Software effort estimation Chapter 5.
Cmpe 589 Spring Software Quality Metrics Product  product attributes –Size, complexity, design features, performance, quality level Process  Used.
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.
Estimation Why estimate? What to estimate? When to estimate?
Chapter 6 : Software Metrics
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 2004Software Engineering, 7th edition. Chapter 26 Slide 1 Software cost estimation 1.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 1 Chapter 23 Software Cost Estimation.
CEN th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi Effort 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.
A Brief Introduction to COCOMO Hossein Saiedian EECS810: Software Engineering.
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.
Lecture 4 Software Metrics
10/27/20151Ian Sommerville.  Fundamentals of software measurement, costing and pricing  Software productivity assessment  The principles of the COCOMO.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 3 1 Software Size Estimation I Material adapted from: Disciplined.
Cost Estimation. Problem Our ability to realistically plan and schedule projects depends on our ability to estimate project costs and development efforts.
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.
Software Project Planning Part II. Troutman's Postulates Profanity is the one language understood by all programmers. Not until a program has been in.
SEG3300 A&B W2004R.L. Probert1 COCOMO Models Ognian Kabranov.
©Ian Sommerville 2000Software Engineering, 7th edition. Chapter 26Slide 1 Software cost estimation l Predicting the resources required for a software development.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
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
Effort Estimation Has been an “art” for a long time because
©Ian Sommerville, adapted by Werner Wild 2004Project Management Slide 1 Software cost estimation u Predicting the resources required for a software development.
Software cost estimation. Fundamental estimation questions How much effort is required to complete an activity? How much calendar time is needed to complete.
Function Points Synthetic measure of program size used to estimate size early in the project Easier (than lines of code) to calculate from requirements.
Estimating “Size” of Software There are many ways to estimate the volume or size of software. ( understanding requirements is key to this activity ) –We.
Effort Estimation In WBS,one can estimate effort (micro-level) but needed to know: –Size of the deliverable –Productivity of resource in producing that.
Personal Estimation with PROBE CS3300 Fall Process Everybody has one !!! Formal – Completely defined and documented Informal – Just the way things.
Project Planning. Overview Planning and the software process Estimating duration and cost Software project management plan components Software project.
Project Estimation. Planning Prerequisites The planning process requires the following inputs: –Required human effort (man-months) –Project duration (months)
INFSY 570 DR. R. OCKER Software Project Planning.
Project Estimation.
Software Engineering (CSI 321)
COCOMO Models 26/12/2016.
Constructive Cost Model
Software Development & Project Management
COCOMO Models 26/12/2016.
COCOMO Model Basic.
Personal Software Process Software Estimation
Chapter 5: Software effort estimation- part 2
Software Metrics “How do we measure the software?”
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 Van Vliet, chapter 7 Glenn D. Blank.
Software Cost Estimation
Software Development Cost Estimation Chapter 5 in Software Engineering by Ian Summerville (7th edition) 4/7/2019.
Software Cost Estimation
COCOMO MODEL.
Presentation transcript:

Lecture 4 Project Estimation CSCI – 3350 Software Engineering II Fall 2014 Bill Pine

CSCI 3350Lecture Planning Prerequisites The planning process requires the following inputs: –Required human effort (man-months) –Project duration (months) –Project costs ($) We would like our estimates to be perfectly precise and accurate –But this requirement is impossible until the project is over Why? (more later)

CSCI 3350Lecture Importance of Estimates In the early days of computing, –Software costs were a small part of the total system cost Even large errors (order of magnitude) = little impact on the total system cost –Today, software costs are the largest component of total system cost Large errors in estimating cost equate to –The difference between profit and loss or –Survival and demise

CSCI 3350Lecture Reasons for Inaccuracy in Estimates Too many uncertainties in the variables that determine the cost In the following categories –Human The developers and their skills are not perfectly known –Technical May need to use new or unfamiliar technology –Environmental May need to run on unfamiliar computer or operating systems –Political Internal company or client politics

CSCI 3350Lecture Estimation Techniques Five main categories of techniques –Algorithmic models –Expert judgment –Estimation by analogy –Pricing to win –Parkinson pricing

CSCI 3350Lecture Algorithmic Models A formula (or set of formulae) is evaluated to provide an estimate Size or functionality metrics are the independent variables Constants in the formula are based upon historic cost data

CSCI 3350Lecture Expert Judgment Several experts in the application domain independently prepare estimates Estimates are compared (together with the rationale for the estimate) Differences are resolved by discussion It is not –Estimation by committee –An averaging of the independent estimates

CSCI 3350Lecture Estimation by Analogy Cost of a new project is estimated by analogy to similar systems previously developed –Identify differences and estimate cost of these differences How to handle no previously developed similar systems? What about changes in development environment? –How to handle employee turnover? –How to handle new language, case tools, …

CSCI 3350Lecture Pricing to Win The cost is what you believe the customer is willing to spend What circumstances would lead you to price a project this way?

CSCI 3350Lecture Parkinson Pricing Parkinson’s Law –Parkinson’s Law – The work expands to fill the time available Cost is determined by available resources rather than by objective analysis Example –If the software is needed in 1 year and you have 5 developers available to work on the project, the effort is 60 man-months

CSCI 3350Lecture Importance of Deviation It is important to identify changes from previous projects, especially when employing –Expert Judgment or –Estimation by Analogy Examples of change affecting estimates –Object-oriented versus structured techniques –Client-server systems versus stand-alone applications –COTS components versus developed components –Reuse versus all new development –CASE tools / code generators versus unsupported development

CSCI 3350Lecture Importance of Deviation (cont) Failure to identify change and account for its influence –Distorts the estimate Perhaps to the point that the estimate is of little value

CSCI 3350Lecture Algorithmic Cost Modeling The most systematic approach to cost modeling –The most precise method, but –Don’t confuse with the most accurate A formula or set of formulae is used to predict cost based on project size, and sometimes other project factors Most algorithmic cost models have an exponential component –Realizing that cost does not scale linearly with size

CSCI 3350Lecture Algorithmic Modeling (cont) The simplest model is a static single-variable model Where –A is a constant factor Factor incorporating process, product and development characteristics –Sizecode size or a function oriented value –BA constant typically in the range of 1 to 1.5

CSCI 3350Lecture Size Metrics Two common categories of size metrics –Lines of code –Function oriented metrics While lines of code (LOC) not the only size metric –LOC is the most commonly used measure of size

CSCI 3350Lecture LOC Metric There are two different ways of implementing LOC –Lines of Code (LOC or KLOC) Count all lines –Thousand of delivered source instructions (KDSI) Count of the physical source statements, includes: –Format statements –Data declarations Excludes –Comments –Unmodified utilities

CSCI 3350Lecture Class Exercise List the problems associated with lines of code as a metric Time: 10 minutes

CSCI 3350Lecture Function Oriented Metrics Based upon a higher level of abstraction –Identify and score high level functionality We will example two metrics –FFP Based on three characteristics: –Files, flows and processes –Function points Based on five characteristics –Input items, Output items, Inquiries, Master files, Interface

CSCI 3350Lecture FFP Proposed by van der Poel and Schach –Medium Size Projects ( man years) –Identify and score 3 basic structural elements Files, Flows, and Processes Structural elements –Files Permanent files only –Do not count temporary or transaction files

CSCI 3350Lecture FFP (cont) –Flows Interfaces between the product and the environment – Input / Output Screens –Reports –Processes Functionally coherent manipulations of data –Sorting –Validating –Transforming

CSCI 3350Lecture FFP (cont) Size –The size is the sum of the Files, Flows and Processes Cost –The product of Size and a constant d Constant varies from organization to organization Based on historic cost and size data

CSCI 3350Lecture FFP (cont) Note: –This metric is based upon the functionality of the application High level property of the system Can be more accurate earlier in the life-cycle than LOC metrics

CSCI 3350Lecture Class Exercise An application maintains 8 files: a sorted master data file, 3 index files, 1 transaction file and 3 temporary files. It has 3 data input screens, 3 display screens, generates 4 printed reports, and 6 error message boxes. The processing includes sorting the master file, updating transactions, calculating report data from master file data. Assume a value of 800 for d. Determine the Size and Cost using FFP. Time = 5 min

CSCI 3350Lecture FFP Summary Advantages –A simple algorithmic model Based on easy-to-count characteristics of a high level design Disadvantages –All items are equally weighted –Requires historic data based upon a particular organization –Has not been extended to correctly count databases –Something unsettling about adding unlike quantities

CSCI 3350Lecture Function Points A similar approach taken by Albrecht Based on 5 functionality characteristics –Input items, output items, inquiries, master files, and interfaces First calculate the number of unadjusted function points

CSCI 3350Lecture Function Points (cont) The constants are determined from the following table

CSCI 3350Lecture Function Points (cont) The next step is to calculate a technical complexity factor Each of 14 technical factors is assigned a value from 0 to 5 –0 - Not present or no influence –5 - Strong influence throughout The degree of influence DI obtained by summing the above values

CSCI 3350Lecture Function Points (cont) The 14 technical factors are Data communicationOnline updating Distributed data processingComplex computations Performance criteriaReusability Heavily utilized hardwareEase of installation Online data entryEase of operation End-user efficiencyMaintainability Transaction RateMultiple Sites

CSCI 3350Lecture Function Points (cont) Calculate the technical complexity factor TCF –TCF values are in the range of 0.65 to 1.35 Finally the number of function points FP is calculated from

CSCI 3350Lecture Function Point Calculations You may find the following template useful –What might be an even better alternative to the template?

CSCI 3350Lecture Class Exercise An application has 5 simple inputs, 4 complex inputs, 30 average outputs, 5 simple queries, 10 average master files and 8 complex interfaces. The degree of influence is 50. Calculate the number of unadjusted function points and the number of function points. Time = 10 minutes

CSCI 3350Lecture Simple Object-Oriented Estimation Simple four step model developed by Lorenz and Kidd The number of estimated classes serves as the size parameter

CSCI 3350Lecture The Four Steps 1.Determine the number of problem domain classes in the application 2.Determine the interface and the associated weight 3.Calculate the number of total classes by multiplying the number of problem domain classes by the interface weight and add it to the number of problem domain classes 4.Calculate the number of man-days by multiplying the total number of classes by a productivity constant in the range of

CSCI 3350Lecture Interface Weights Interface TypeWeight No user interface2.0 Simple text-based interface2.25 Graphical user interface2.5 Complex graphical user interface3.0

CSCI 3350Lecture Class Exercise An object-oriented application has an estimated 50 problem domain cases and a graphical user interface. Assuming a productivity constant of 18, calculate the number of man-days that will needed to develop the application. Time = 10 minutes

CSCI 3350Lecture COCOMO COCOMO is a static single variable model COCOMO is an acronym for Constructive Cost Model that was developed by Barry Boehm COCOMO is actually a hierarchy of models of the following form –Basic COCOMO – estimates software development effort and cost as a function of program size in lines of code –Intermediate COCOMO - estimates software development and cost as a function of program size in lines of code and a set of “cost drivers”

CSCI 3350Lecture COCOMO (cont) –Cost drivers include subjective assessments of attributes in the general areas of Product Hardware Personnel Project –Advanced COCOMO – incorporates the characteristics of intermediate COCOMO with an assessment of the cost driver impact on each phase of the software development cycle

CSCI 3350Lecture COCOMO (cont) We will confine our examination to the intermediate model The intermediate model calibrated on –40 software development projects Further work revealed certain difficulty factors that dramatically influenced the effort estimates and schedule

CSCI 3350Lecture COCOMO (cont) The level of difficulty was broken into three modes –Organic Mode Constraints on development are mild Many similar projects previously developed by the organization –Semi-detached Mode More constraints on development, but some flexibility remains Few similar projects previously developed by the organization –Embedded Mode Very tight constraints No similar projects previously developed

CSCI 3350Lecture Intermediate COCOMO Calculations Intermediate COCOMO calculations proceed by –First, determine the mode (organic, semi-detached, embedded) –This determines the constants A - D

CSCI 3350Lecture Intermediate COCOMO (cont) –Second, using the appropriate constants from the previous table, calculate the nominal effort and schedule from –Third, calculate a difficulty multiplier that depends upon the previous mention categories Product Hardware Personnel Project

CSCI 3350Lecture Intermediate COCOMO (cont) –Fourth, the adjusted effort MM is the nominal effort MM nominal multiplied by the difficulty multiplier –Fifth, the project duration is calculated from

CSCI 3350Lecture Intermediate COCOMO (cont) With regard to the accuracy of COCOMO, heed the words of Barry Boehm “ Today, a software cost estimation model is doing well if it can estimate software development costs within 20% of actual costs, 70% of the time, and on its own turf (that is within the class of projects to which it has been calibrated)... This is not as precise as we might like, but it is accurate enough to provide a good deal of help in software engineering economic analysis and decision making [sic].”

CSCI 3350Lecture COCOMO II COCOMO II was developed to address several issues that did not exist when the original COCOMO was developed –The waterfall model was the software lifecycle development model –Most software ran on mainframes –Client-server and object oriented technologies were unknown, or at least were not widely used –Simple reuse in effect – no inheritance, etc

CSCI 3350Lecture COCOMO II (cont) Major differences –COCOMO was based upon lines of codes estimate COCOMO II allows the use of other metrics, i.e. function points –COCOMO had a constant exponent, depending upon which of three modes is selected COCOMO II allows the exponent to continuously vary between 1.01 and 1.26 –COCOMO assumes that savings due to reuse are directly proportional to the amount of reuse COCOMO II uses a non linear model – even a small amount of reuse may incur a huge effort in understanding the code

CSCI 3350Lecture COCOMO II (cont) –COCOMO II modified the difficulty factors –COCOMO II was calibrated with 83 projects

CSCI 3350Lecture Additional Considerations Consider adding the following multiplier to all estimates