1242.2219 Information System Economics Software Project Cost Estimation.

Slides:



Advertisements
Similar presentations
Software Cost Estimation
Advertisements

COST ESTIMATION TECHNIQUES AND COCOMO. Cost Estimation Techniques 1-)Algorithmic cost modelling 2-)Expert judgement 3-)Estimation by analogy 4)-Parkinsons.
Estimation using COCOMO More Science, Less Art. COCOMO History COCOMO History Constructive Cost Model Dr. Barry Boehm TRW in 1970s COCOMO
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?
Cocomo II Constructive Cost Model [Boehm] Sybren Deelstra.
Project Risks and Feasibility Assessment Advanced Systems Analysis and Design.
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)
COCOMO II 資管研一 張永昌. Agenda Overall Model Definition COCOMO II Models for the Software Marketplace Sectors COCOMO II Model Rationale and Elaboration Development.
SOFTWARE PROJECT MANAGEMENT AND COST ESTIMATION © University of LiverpoolCOMP 319slide 1.
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.
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
COCOMO-SCORM: Cost Estimation for SCORM Course Development
Cost22 1 Question of the day u If you were the boss, what would you do for cost estimation?
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?
Dr. M. Shamim HossainSWE 211 Effort, Duration and Cost Lec 3 1.
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.
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.
Group Members: Ayush Newatia, Barry Foye, Billy Felton, Kevin Anderson, Shahnaz Begum and Adam Jasinski Constructive Cost Model is a technique used to.
Cost13 1 Cost Estimation Estimates based on LOC. cost13 2 Boehm's COCOMO u Software Engineering Economics u Prentice-Hall c1981 u type COCOMO in a search.
T. E. Potok - University of Tennessee CS 594 Software Engineering Lecture 3 Dr. Thomas E. Potok
10/27/20151Ian Sommerville.  Fundamentals of software measurement, costing and pricing  Software productivity assessment  The principles of the COCOMO.
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.
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.
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
Cost9a 1 Software Estimating Technology: A Survey Richard Stutzke Crosstalk, May96 text pp
Copyright , Dennis J. Frailey CSE7315 – Software Project Management CSE7315 M18 - Version 9.01 SMU CSE 7315 Planning and Managing a Software Project.
©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.
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.
The COCOMO model An empirical model based on project experience. Well-documented, ‘independent’ model which is not tied to a specific software vendor.
CSE SW Project Management / Module 18 - Introduction to Effort Estimating Models Copyright © , Dennis J. Frailey, All Rights Reserved CSE7315M18.
Software project management 3rd Umer khalid Lecturer University of Lahore Sargodha campus.
بشرا رجائی برآورد هزینه نرم افزار.
(8) Potential required for planning with management Top-Down Estimating Method: Top-down estimating method is also called Macro Model. Using it, estimation.
COCOMO Software Cost Estimating Model Lab 4 Demonstrator : Bandar Al Khalil.
Project Cost Management
Software Engineering.
Software Estimating Technology: A Survey
SOFTWARE PROJECT MANAGEMENT AND COST ESTIMATION
PROJECT LIFE CYCLE AND EFFORT ESTIMATION
Constructive Cost Model
Software Development & Project Management
Software Engineering.
SOFTWARE PROJECT MANAGEMENT AND COST ESTIMATION
COCOMO Model Basic.
Chapter 5: Software effort estimation- part 2
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.
COCOMO 2 COCOMO 81 was developed with the assumption that a waterfall process would be used and that all software would be developed from scratch. Since.
Software Cost Estimation
Software Cost Estimation
COnstructive COst MOdel
Presentation transcript:

Information System Economics Software Project Cost Estimation

Brooks’ Law “ Adding manpower to a late software project makes it later.” Frederick P. Brooks, Jr. The Mythical Man- Month: Essays on Software Engineering. Addison-Wesley (1972, 1975, 1982, 1995)

Software Project Cost Estimation What do we need to know in order to manage a software project?  How many people?  How long?  How much?  Manpower loading over time?  Cash flow?  Risk and uncertainty?  Alternatives?

Software Project Cost Estimation What tools are necessary?  A small number of attributes, expressed in managerial terms, to permit prior estimation.  Update and control methods for each stage of the life cycle.

Software Project Cost Estimation The Software Myth t (yrs) Manpower (people years/year) 150 py t (yrs) Manpower (people years/year) 150 py

Software Project Cost Estimation The Software Myth Assumptions which generate the myth:  Productivity (S/PY) is constant and can be determined by management  product is directly proportional to effort (PY)

Software Project Cost Estimation Lawrence H. Putnam and Ann Fitzsimmons, “Estimating Software Costs” Datamation, Sept. 1979: ; Oct. 1979: , Nov :

Software Project Cost Estimation

The Software Life Cycle

Software Project Cost Estimation

Larry Putnam’s Model Lines of code: S S Person years invested: K Time to develop: Technology coefficient:

Software Project Cost Estimation Larry Putnam’s Model Lines of code: Person years invested: Time to develop:

Software Project Cost Estimation Larry Putnam’s Model Example: givenS S =100,000 C=10,040 t d = various computeK t d K

Software Project Cost Estimation Putnam’s Model: Software Project Comparisons Technology Coefficient (C) = 20,000 person years t d (years)S s (lines of code) 82100, , , , , ,373,657

Software Project Cost Estimation COCOMO Constructive Cost Model Barry W. Boehm. Software Engineering Economics. Englewood Cliffs: Prentice Hall (October 1981). Software Cost Estimation with Cocomo II (with CD- ROM). Prentice Hall (August 2000). - Costar 6.0

Software Project Cost Estimation COCOMO is a cost estimation model used by thousands of software project managers and is based on a study of scores of software projects. The most fundamental calculation in the COCOMO model is the use of the Effort Equation to estimate the number of Staff-Months required to develop a project. Most other COCOMO results, including estimates for Requirements and Maintenance, are derived from this quantity.

Software Project Cost Estimation Typically, cost estimation starts with only a rough description of the software system that will be developed. COCOMO is used to give early estimates about the proper schedule and staffing levels. As knowledge of the problem is refined, and as more of the system is designed, COCOMO can be used to produce more and more refined estimates. Overview of COCOMO

Software Project Cost Estimation Overview of COCOMO COCOMO allows you to define a software structure to meet your needs. Your initial estimate might be made on the basis of a system containing 3,000 lines of code. Your second estimate might be more refined so that you now understand that your system will consist of two subsystems (and you'll have a more accurate idea about how many lines of code will be in each of the subsystems). Your next estimate will continue the process -- you can use COCOMO to define the components of each subsystem. COCOMO permits you to continue this process until you arrive at the level of detail that suits your needs.

Software Project Cost Estimation Overview of COCOMO  Source Lines of Code - SLOC  Scale Drivers  Cost Drivers  The Effort Equation  The Effort Adjustment Factor  The Schedule Equation  The SCED (Schedule Constraints) Cost Driver Elements of the COCOMO II model:

Software Project Cost Estimation Overview of COCOMO  Only Source lines that are DELIVERED as part of the product are included -- test drivers and other support software is excluded  SOURCE lines are created by the project staff -- code created by applications generators is excluded  One SLOC is one logical line of code  Declarations are counted as SLOC  Comments are not counted as SLOC The COCOMO II calculations are based on estimates of a project's size in Source Lines of Code (SLOC). SLOC is defined such that:

Software Project Cost Estimation COCOMO 81 DSI - “Delivered Source Instructions” COCOMO II SLOC - “Source Lines Of Code” Overview of COCOMO The original COCOMO 81 model was defined in terms of Delivered Source Instructions, which are very similar to SLOC. The major difference between DSI and SLOC is that a single Source Line of Code may be several physical lines. For example, an "if-then-else" statement would be counted as one SLOC, but might be counted as several DSI.

Software Project Cost Estimation In the COCOMO II model, some of the most important factors contributing to a project's duration and cost are the Scale Drivers. The Scale Drivers determine the exponent used in the Effort Equation. The 5 Scale Drivers are:  Precedentedness  Development Flexibility  Architecture / Risk Resolution  Team Cohesion  Process Maturity The Scale Drivers

Software Project Cost Estimation The Scale Drivers  Organic mode - the project is developed in a familiar, stable environment, and the product is similar to previously developed products. The product is relatively small, and requires little innovation  Semidetached mode - the project’s characteristics are intermediate between Organic and Embedded  Embedded mode - the project is characterized by tight, inflexible constraints and interface requirements and requires a great deal of innovation. E.g. A real- time system with timing constraints and customized hardware. Note that the Scale Drivers have replaced the Development Modes of COCOMO 81, which were:

Software Project Cost Estimation The Cost Drivers COCOMO II has 17 cost drivers – the project, development environment, and team are assessed to set each cost driver. The cost drivers are multiplicative factors that determine the effort required to complete the software project. For example, if your project will develop software that controls an airplane's flight, you would set the Required Software Reliability (RELY) cost driver to Very High. That rating corresponds to an effort multiplier of 1.26, meaning that your project will require 26% more effort than a typical software project. COCOMO II defines each of the cost drivers, and the Effort Multiplier associated with each rating.

Software Project Cost Estimation The Cost Drivers - Examples ACAPAnalyst Capability APEX AEXP PCAPProgrammer Capability LEXPProgramming Language Experience VEXPVirtual Machine Experience PERSPersonnel Capability... Applications Experience

Software Project Cost Estimation COCOMO II Effort Equation The COCOMO II model makes its estimates of required effort (measured in Person-Months – PM) based primarily on your estimate of the software project's size (as measured in thousands of SLOC - KSLOC) : Effort = 2.94 * EAF * (KSLOC) E Where: EAF Is the Effort Adjustment Factor derived from the Cost Drivers E Is an exponent derived from the five Scale Drivers

Software Project Cost Estimation COCOMO II Effort Equation As an example, a project with all Nominal Cost Drivers and Scale Drivers would have an EAF of 1.00 and exponent, E, of Assuming that the project is projected to consist of 8,000 source lines ofcode, COCOMO II estimates that 28.9 Person-Months of effort is required to complete it: Effort = 2.94 * (1.0) * (8) = 28.9 Person-Months

Software Project Cost Estimation COCOMO II Effort Adjustment Factor The Effort Adjustment Factor in the effort equation is simply the product of the effort multipliers corresponding to each of the cost drivers for your project. For example, if your project is rated Very High for Complexity (effort multiplier of 1.34), and Low for Language & Tools Experience (effort multiplier of 1.09), and all of the other cost drivers are rated to be Nominal (effort multiplier of 1.00), the EAF is the product of 1.34 and Effort Adjustment Factor = EAF = 1.34 * 1.09 = 1.46 Effort = 2.94 * (1.46) * (8) = 42.3 Person-Months

Software Project Cost Estimation COCOMO II Schedule Equation The COCOMO II schedule equation predicts the number of months required to complete a software project. The duration of a project is based on the effort predicted by the effort equation: Duration = 3.67 * (Effort) SE Where Effort Is the effort from the COCOMO II effort equation SE Is the schedule equation exponent derived from the five Scale Drivers

Software Project Cost Estimation COCOMO II Schedule Equation Continuing the example, and substituting the exponent of that is calculated from the scale drivers, yields an estimate of just over a year, and an average staffing of between 3 and 4 people: Duration = 3.67 * (42.3) = 12.1 months Average staffing = (42.3 Person-Months) / (12.1 Months) = 3.5 people

Software Project Cost Estimation COCOMO II SCED Cost Driver The SCED cost driver is used to account for the observation that a project developed on an accelerated schedule will require more effort than a project developed on its optimum schedule. A SCED rating of Very Low corresponds to an Effort Multiplier of 1.43 (in the COCOMO II.2000 model) and means that you intend to finish your project in 75% of the optimum schedule (as determined by a previous COCOMO estimate). Continuing the example used earlier, but assuming that SCED has a rating of Very Low, COCOMO produces these estimates: Duration = 75% * 12.1 Months = 9.1 Months Effort Adjustment Factor = EAF = 1.34 * 1.09 * 1.43 = 2.09 Effort = 2.94 * (2.09) * (8) = 60.4 Person-Months Average staffing = (60.4 Person-Months) / (9.1 Months) = 6.7 people

Software Project Cost Estimation COCOMO II SCED Cost Driver Notice that the calculation of duration isn't based directly on the effort (number of Person-Months) – instead it's based on the schedule that would have been required for the project assuming it had been developed on the nominal schedule. Remember that the SCED cost driver means "accelerated from the nominal schedule".