Estimating “Size” of Software There are many ways to estimate the volume or size of software. ( understanding requirements is key to this activity ) –We.

Slides:



Advertisements
Similar presentations
Estimation using COCOMO More Science, Less Art. COCOMO History COCOMO History Constructive Cost Model Dr. Barry Boehm TRW in 1970s COCOMO
Advertisements

Early Effort Estimation of Business Data-processing Enhancements CS 689 November 30, 2000 By Kurt Detamore.
Project Estimation: Metrics and Measurement
Software Cost Estimation Main issues:  What factors determine cost/effort?  How to relate effort to development time?
Project Risks and Feasibility Assessment Advanced Systems Analysis and Design.
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)
SOFTWARE PROJECT MANAGEMENT AND COST ESTIMATION © University of LiverpoolCOMP 319slide 1.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
CSC 395 – Software Engineering
1 Cost Estimation CIS 375 Bruce R. Maxim UM-Dearborn.
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
Information System Economics Software Project Cost Estimation.
Software Metric capture notions of size and complexity.
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.
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.
Function Point Analysis What is Function Point Analysis (FPA)? It is designed to estimate and measure the time, and thereby the cost, of developing new.
Quality Assurance vs. Quality Control Quality Assurance An overall management plan to guarantee the integrity of data (The “system”) Quality Control A.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software cost estimation Predicting the resources required for a software development process 1.
1 Chapter 23 Estimation for Software Projects. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for.
T. E. Potok - University of Tennessee CS 594 Software Engineering Lecture 3 Dr. Thomas E. Potok
Lecture 4 Software Metrics
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.
Software complexity estimation by Adam Bondarowicz by Adam Bondarowicz.
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.
Estimating Cost size difficulty effort productivity work rate cost LoC, fp mm (ideal) mm $ $/mm time.
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.
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.
Effort Estimation In WBS,one can estimate effort (micro-level) but needed to know: –Size of the deliverable –Productivity of resource in producing that.
540f07cost12oct41 Reviews Postmortem u Surprises? u Use white background on slides u Do not zip files on CD u Team leader should introduce team members.
Rating Very Very Extra Cost Drivers Low Low Nominal High High High Product Attributes Required software reliability Database size.
FUNCTION POINT ANALYSIS & ESTIMATION
Project Estimation. Planning Prerequisites The planning process requires the following inputs: –Required human effort (man-months) –Project duration (months)
بشرا رجائی برآورد هزینه نرم افزار.
Estimation Questions How do you estimate? What are you going to estimate? Where do you start?
CS223: Software Engineering
THE FAMU-CIS ALUMNI SYSTEM
Project Cost Management
Function Point Analysis
Software Project Estimation
Software Planning
Constructive Cost Model
COCOMO Model Basic.
Function Point.
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.
COnstructive COst MOdel
Chapter 26 Estimation for Software Projects.
COCOMO MODEL.
Presentation transcript:

Estimating “Size” of Software There are many ways to estimate the volume or size of software. ( understanding requirements is key to this activity ) –We care about estimating “size” because we want to use it as an input to estimating other items: Cost Schedule Quality –One popular metric for size is Lines of Code(loc): We can physically count this Has been used by many But Has problems: –Different languages –What to do with comments One conservative way of estimating loc of a component: –Estimate the min., estimate the most likely, estimate the max. –Take the weighted average as follows: »(min + 4* most_likely + max) / 6

Cost (Effort)Estimation In general, effort estimation is based on several parameters and the model ( E= a + b*S**c ): –Personnel –Environment –Quality –Size or Volume of work (e.g. loc) –Process –where S is the Size and a, b, and c are constants estimated with other parameters a is the base cost needed to perform the project regardless of size c is the exponent that shows whether the increase of S linearly affects the cost. If c=1 then it is linear. b is a fixed “marginal” cost per change of S.

Cost/Effort Estimation models Some popular Effort Estimation methodologies: –Function Point (actually estimates size --- converts to effort) –COCOMO (Constructive Cost Model)

Function Point Proposed by Albrecht of IBM as an alternative metric to lines of code count for S, size of product. Based on 5 major areas and a complexity table of (simple, average and complex set of weights: simple average complex –input –output –inquiry –master files –interfaces The Unadjusted Function Point (UFP) is : – UFP = w*Inp + w2*Out + w3*Inq + w4*MastF +w5*Intf

Function Point (cont.) 14 technical complexity factors are included, each “valued” between 0 and 5: –data communications –distributed data –performance criteria –heavy hardware usage –high transaction rates –online data entry –online updating –complex computations –ease of installation –ease of operation –portability –maintainability –end-user efficiency –reusability

Function Point (cont.) The sum of 14 technical complexity factors can have values of 0 through 70. The the Total Complexity Factor(TCF) is defined as: – TCF =.65 + (.01 * Sum of 14 technical complexity factors) – Thus TCF may have values of 0.65 through Finally, Function Point (FP) is defined as: FP = UFP * TCF To convert to effort or cost, one may use “historical” data of productivity and dollars per FP. (need a conversion factor)

Simple Function Point Example Consider the function that uses ‘Simple” weights from the table : –2 inputs, 1 output, 0 inquiry, 0 master file, and 2 interfaces – UFP = 3* 2 + 4*1 + 3*0 + 7*0 + 5*2 = 20 –consider the 14 complexity factors : 0-data comm; 0-distrib data; 0-perf criteria; 0-hardware usage; 0-transaction rate; 1- online data entry; 0-end user efficiency; 0-online update; 2- complex computation;0-reusability; 0-ease of install; 0-ease of operation; 0-portability; 1-maintainability: –TCF =.65 + (.01 * 4 ) =.69 –FP = UFP * TCF –FP = 20 *.69 –FP = 13.8

Function Point Example (cont.) What does 13.8 function points mean in terms of schedule and cost estimates ? One can receive guidance from IFPUG (International Function Point User Group) to get some of the $/FP or person-days/FP data. With “old IBM services division” data of 20 function points per person-month to perform “complete” development, 13.8 FP translates to approximately.7 person months or (22days *.7 = 15 person days) of work. Assume $7k/person-month,.7 person months will cost about $5k.

Some Function Points Drawbacks Requires “trained” people to perform estimates of work volume or product size, especially the 14 technical complexity factors. While IFPUG may furnish some broader data, Cost and Productivity, figures are still different from organization to organization. –e.g. the IBM data takes into account of corporate “overhead” cost Some of the 14 Complexity Factors are not that important or complex with today’s tools.

COCOMO Estimating Technique Developed by Barry Boehm in early 1980’s who had a long history with TRW and government projects (LOC based). Used many projects (~50 some) as the basis. Later modified into COCOMO II in the mid-1990’s (FP preferred but LOC is still used) Assumed process activities : –Product Design –Detailed Design –Code and Unit Test –Integration and Test Utilized by some but most of the software industry people still rely on experience and/or own company proprietary data.

COCOMO I Basic Form for Effort Effort = A * B * (size ** C) –Effort = person months –A = scaling coefficient –B = coefficient based on 15 parameters –C = a scaling factor for process –Size = delivered source lines of code

COCOMO I Basic form for Time Time = D * (Effort ** E) –Time = total number of calendar months –D = A constant scaling factor for schedule –E = a coefficient to describe the potential parallelism in managing software development

COCOMO I Originally based on 56 projects Reflecting 3 modes of projects –Organic : less complex and flexible process –Semidetached : average project –Embedded : complex, real-time defense projects

3 Modes are Based on 8 Characteristics A. Team’s understanding of the project objective B. Team’s experience with similar or related project C. Project’s needs to conform with established requirements D. Project’s needs to conform with established interfaces E. Project developed with “new” operational environments F. Project’s need for new technology, architecture, etc. G. Project’s need for schedule integrity H. Project’s size range

COCOMO I For the basic forms: –Effort = A * B *(size ** C) –Time = D * (Effort ** E) Organic : A = 3.2 ; C = 1.05 ; D= 2.5; E =.38 Semidetached : A = 3.0 ; C= 1.12 ; D= 2.5; E =.35 Embedded : A = 2.8 ; C = 1.2 ; D= 2.5; E =.32

Coefficient B Coefficient B is an effort adjustment factor based on 15 parameters which varied from very low, low, nominal, high, very high to extra high B = Product of (15 parameters) –Product attributes: Required Software Reliability :.75 ;.88; 1.00; 1.15; 1.40; Database Size : ;.94; 1.00; 1.08; 1.16; Product Complexity :. 70 ;.85; 1.00; 1.15; 1.30; 1.65 –Computer Attributes Execution Time Constraints : ; ; 1.00; 1.11; 1.30; 1.66 Main Storage Constraints : ; ; 1.00; 1.06; 1.21; 1.56 Virtual Machine Volatility : ;.87; 1.00; 1.15; 1.30; Computer Turnaround time : ;.87; 1.00; 1.07; 1.15;

Coefficient B (cont.) Personnel attributes Analyst Capabilities : 1.46 ; 1.19; 1.00;.86;.71; Application Experience : 1.29; 1.13; 1.00;.91;.82; Programmer Capability : 1.42; 1.17; 1.00;.86;.70; Virtual Machine Experience : 1.21; 1.10; 1.00;.90; ; Programming lang. Exper. : 1.14; 1.07; 1.00;.95; ; Project attributes Use of Modern Practices : 1.24; 1.10; 1.00;.91;.82; Use of Software Tools : 1.24; 1.10; 1.00;.91;.83; Required Develop schedule : 1.23; 1.08; 1.00; 1.04; 1.10;

An example Consider an average project of 10Kloc: –Effort = 3.0 * B * (10** 1.12) = 3 * 1 * 13.2 = 39.6 pm –Where B = 1.0 (all nominal) –Time = 2.5 *( 39.6 **.35) = 2.5 * 3.6 = 9 months –This requires an additional 8% more effort and 36% more schedule time for product plan and requirements: Effort = (39.6 *.o8) = = pm Time = 9 + (9 *.36) = = months

Some COCOMO I concerns Is our initial loc estimate accurate enough ? Are we interpreting each parameter the same way ? Do we have a consistent way to assess the range of values for each of the 15 parameters ?

COCOMO II Effort performed at USC with many industrial corporations participating (still guided by Boehm) Has a database of over 80 some projects Early estimate, preferred to use Function Point instead of LOC for size; later estimate may use LOC for size. Coefficient B based on 15 parameters for early estimate is “rolled” up to 7 parameters, and for late estimates use 17 parameters. Scaling factor for Process has 6 categories ranging in value from.00 to.05, in increments of.01