21
540f07cost11oct2 1 Cost Estimation Estimates based on LOC

540f07cost11oct21 Cost Estimation Estimates based on LOC

Embed Size (px)

Citation preview

Page 1: 540f07cost11oct21 Cost Estimation Estimates based on LOC

540f07cost11oct2 1

Cost Estimation

Estimates based on LOC

Page 2: 540f07cost11oct21 Cost Estimation Estimates based on LOC

540f07cost11oct2 2

Boehm's COCOMO

Software Engineering Economics Prentice-Hall c1981 type COCOMO in a search engine - many

www sites

Page 3: 540f07cost11oct21 Cost Estimation Estimates based on LOC

540f07cost11oct2 3

COnstructive COst MOdel

Basic– macro - overview of whole project with one

metric of KSLOC Intermediate

– multiplicative adjustment factors Detailed

– applying model to each phase

Page 4: 540f07cost11oct21 Cost Estimation Estimates based on LOC

540f07cost11oct2 4

Modes of Software Development

Organic– detached, often batch

Semidetached– e.g. transaction processing

Embedded– e.g. os kernel

Page 5: 540f07cost11oct21 Cost Estimation Estimates based on LOC

540f07cost11oct2 5

Programmer Effort

Application Programs– PM = 2.4 * (KDSI)1.05

Utility Programs– PM = 3.0 * (KDSI)1.12

Systems Programs– PM = 3.6 * (KDSI)1.20

Page 6: 540f07cost11oct21 Cost Estimation Estimates based on LOC

540f07cost11oct2 6

Example for effort Size Appl Util Sys 5K 13.0 18.2 24.8 10K 26.9 39.5 57.1 15K 41.2 62.2 92.8 20K 55.8 86.0 131.1 25K 70.5 110.4 171.3 30K 85.3 135.3 213.2 35K 100.3 160.8 256.6 40K 115.4 186.8 301.1 45K 130.6 213.2 346.9 50K 145.9 239.9 393.6

Page 7: 540f07cost11oct21 Cost Estimation Estimates based on LOC

540f07cost11oct2 7

Development Time (Months)

Application Programs– TDEV = 2.5 * (PM) 0.38

Utility Programs– TDEV = 2.5 * (PM) 0.35

Systems Programs– TDEV = 2.5 * (PM) 0.32

Page 8: 540f07cost11oct21 Cost Estimation Estimates based on LOC

540f07cost11oct2 8

Example for development time

size appl util sys 5K 6.63 6.90 6.99 10K 8.74 9.06 9.12 15K 10.27 10.62 10.66 20K 11.52 11.88 11.90 25K 12.60 12.97 12.96 30K 13.55 13.93 13.91 35K 14.40 14.80 14.75 40K 15.19 15.59 15.53 45K 15.92 16.33 16.25 50K 16.61 17.02 16.92

Page 9: 540f07cost11oct21 Cost Estimation Estimates based on LOC

540f07cost11oct2 9

Average Staffing Levels

Calculate by dividing PM by TDEV

Page 10: 540f07cost11oct21 Cost Estimation Estimates based on LOC

540f07cost11oct2 10

Example for staffing levels

size appl util sys 5K 1.96 2.63 3.55 10K 3.08 4.37 6.26 15K 4.01 5.87 8.71 20K 4.84 7.23 11.02 25K 5.60 8.51 13.21 30K 6.30 9.72 15.33 35K 6.97 10.87 17.39 40K 7.60 11.98 19.39 45K 8.20 13.05 21.35 50K 8.79 14.09 23.27

Page 11: 540f07cost11oct21 Cost Estimation Estimates based on LOC

540f07cost11oct2 11

Productivity

The productivity is defined as LOC per time unit.

The usual units are LOC/Programmer-Day

Divide final size of project by total programmer-days of effort for the whole software development

Page 12: 540f07cost11oct21 Cost Estimation Estimates based on LOC

540f07cost11oct2 12

TTYP1

What is the effort, productivity, staffing and delivery time for an application project that takes 175K loc?

What is the effort, productivity, staffing and delivery time for a system project that take 400K loc?

Page 13: 540f07cost11oct21 Cost Estimation Estimates based on LOC

540f07cost11oct2 13

COCOMO Effort Multipliers

product attributes – required reliability 0.75 - 1.40

– data-base size 0.94 - 1.16

– product complexity 0.70 - 1.65 computer attributes

– execution time constraint 1.00 - 1.66

– main storage constraint 1.00 - 1.56

– virtual machine volatility 0.87 - 1.30

– computer turnaround time 0.87 - 1.15

Page 14: 540f07cost11oct21 Cost Estimation Estimates based on LOC

540f07cost11oct2 14

Putnam's Cost Estimation Model

macro-estimation model that uses LOC relationship between cost and the amount of

time available for the development effort. The model supports the 'mythical man-

month' idea

Page 15: 540f07cost11oct21 Cost Estimation Estimates based on LOC

540f07cost11oct2 15

Putnam's Model

Uses the Rayleigh Curve– Shows Instantaneous Programmer-power vs

Time– Empirically verified on other projects

Page 16: 540f07cost11oct21 Cost Estimation Estimates based on LOC

540f07cost11oct2 16

Rayleigh Curve

The rayleigh curve is a product of at times e raised to the -bt squared

The at dominates at first giving a steep rise and then the negative power of e lowers the value slowly

Page 17: 540f07cost11oct21 Cost Estimation Estimates based on LOC

540f07cost11oct2 17

Rayleigh Curve

y : instantaneous programmer-power K : total lifecycle cost ( in programmer-years) t : time from beginning of project td: delivery time e= 2.71828...

y Kt

te

d

ttd

22

22

Page 18: 540f07cost11oct21 Cost Estimation Estimates based on LOC

540f07cost11oct2 18

Software Equation

There must be a relationship between the lifecycle development effort, the development time and the size of the project.

This relationship is given in the Software Equation

Page 19: 540f07cost11oct21 Cost Estimation Estimates based on LOC

540f07cost11oct2 19

Software Equation

Ss = C*K1/3 td4/3

– where:

– Ss is the estimated size of the software system

– K is the total lifecycle effort in programmer-years

– C is the technology constant

– td is the development time (in years) )/1(][ 433/1 tPBlocE

B is “special skills factor”; P is “productivity parameter”

Page 20: 540f07cost11oct21 Cost Estimation Estimates based on LOC

540f07cost11oct2 20

Putnam by spread-sheetS td (years) K .4K ProgProd

100000 1 100000 40000 0.0125100000 1.5 19753 7901 0.0633100000 2 6250 2500 0.2000100000 2.5 2560 1024 0.4883100000 3 1235 494 1.0125100000 3.5 666 267 1.8758100000 4 391 156 3.2000100000 4.5 244 98 5.1258100000 5 160 64 7.8125100000 5.5 109 44 11.4383100000 6 77 31 16.2000100000 6.5 56 22 22.3133100000 7 42 17 30.0125

Page 21: 540f07cost11oct21 Cost Estimation Estimates based on LOC

540f07cost11oct2 21

Thursday, Oct 4

Function Point Estimation Read SOS sec 4.4.4 Directed Journaling

– Write rules for counting each of the five types of items

– This is an individual activity

– Upload by 11am 10/4

– Bring a hardcopy to class to be shared and turned in