240 likes | 410 Views
Question of the day. If you were the boss, what would you do for cost estimation?. Cost Estimation. Estimates based on LOC. Prediction Formulas. >1. E= X . =1. <1. cost. Size. TTYP1 – which one did Henry Ford experience?. Cost Estimation Models. LOC models Boehm's COCOMO
E N D
Question of the day • If you were the boss, what would you do for cost estimation?
Cost Estimation Estimates based on LOC
Prediction Formulas >1 E=X =1 <1 cost Size TTYP1 – which one did Henry Ford experience?
Cost Estimation Models • LOC models • Boehm's COCOMO • Putnam's Model (SLIM) • non-LOC models • Function Points • combination • COCOMO2
Boehm's COCOMO • Software Engineering Economics • Prentice-Hall c1981 • type COCOMO in a search engine - many www sites
COnstructive COst MOdel • Basic • macro - overview of whole project with one metric of KSLOC • Intermediate • multiplicative adjustment factors • Detailed • applying model to each phase
Modes of Software Development • Organic • detached, often batch • Semidetached • e.g. transaction processing • Embedded • e.g. os kernel
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
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
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
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
Average Staffing Levels • Calculate by dividing PM by TDEV
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
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
TTYP2 • What is the effort, productivity, staffing and delivery time for an application project that takes 82K loc? • What is the effort, productivity, staffing and delivery time for a system project that take 200K loc?
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
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
Putnam's Model • Uses the Rayleigh Curve • Shows Instantaneous Programmer-power vs Time • Empirically verified on other projects
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
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...
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
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)
Summary • What could you do as a manager to improve cost estimation?