Using COCOMO for Software Decisions - from COCOMO II Book, Section 2.6 Barry Boehm CS 510, Fall 2016 Edited & presented by Jim Alstad
Outline COCOMO II Objective: Decision Support Example Company: UST, Inc. Auto Parts Frequent Software Decisions Investment; Business Case Analysis Setting Project Budgets and Schedules Performing Tradeoff Analysis Cost Risk Management Development vs. Reuse Legacy Software Phaseout Software Process Improvement Software Organizational Decisions Conclusions
UST, Inc. Auto Parts Company Large manufacturing company 200-person software organization Considering development of manufacturing control system (MCS) 100 KSLOC; nominal driver ratings; $8K/PM Scaling exponent E=0.91+0.01(3.72+3.04+4.24+3.29+4.68)=1.10 Estimated effort and cost Effort=2.94*100^1.10 = 466 PM Cost = 466 PM * $8K/PM = $3.728M
UST, Inc. Auto Parts Company (Cont.) Plus Inception (6%) and Transition (12%) costs Acquisition Cost = $3.728M*1.18 = $4.4M Annual Maintenance Cost Annual Software Change = 100*(0.20) = 20 KSLOC Cost = 2.94*(20)^1.10*$8K=$635K Jim: Added “$3.728M”.
MCS Business Case Analysis MCS estimate to reduce manufacturing inventory 20% Enables more just-in-time arrival of suppliers components Current Manufacturing inventory valued at $80M Inventory carrying costs average around 25% Inventory control, property taxes, capital costs, etc. MCS savings in reduced inventory carrying costs = ($80M)*(0.25)*(0.2)=$4M/Year MCS savings subtracts software maintenance cost =$4M-0.635M=$3.365M 5-year-ROI = (5 * $3.365M - $4.4M) / $4.4M = 2.8 Well worth the investment Jim: Added “$80M”.
Setting Project Budgets and Schedules TDEV=3.67*(PM)^[0.28+0.2*(E-0.91)] = 3.67*(466)^0.318 = 26 month Construction phase schedule and effort Effort=0.76*(466 PM)=354 PM; Schedule=0.625*26=16.25 Month; Staff Level = 354/16.25=28.8 people Jim: Added “466 PM”. Jim: Replaced “Development” with “Construction”.
Performing Tradeoff Analysis MCS Life-cycle Costs vs. Reliability Level RELY Rating Very Low Low Nominal High Very High Dev. Effort Mult. 0.82 0.92 1.0 1.10 1.26 Dev. Cost ($K) 3608 4048 4400 4940 5544 Maint. Effort Mult. 1.35 1.15 0.98 Maint. Cost (*2 for Nominal: 20%/year * 10 years) 11,880 10,120 8,800 8,624 9,680 Life-cycle Cost 15,488 14,168 13,200 13,464 15,224 Jim: Explain “Maint. Effort Mult.” as combined cost of 1) developing at the required RELY level, and 2) dealing with extra debugging and bug fixing for lower-RELY software.
Value-Based Tradeoff Analysis Cost of Downtime = $38K*(Downtime) RELY Rating Very Low Low Nominal High Very High Mean Time to Failure (hr) 1 10 300 10,000 300,000 Mean Time to Repair (hr) Avail= MTBF/(MTBF+MTTR) .50 .90 .997 0.9999 0.999997 Downtime .10 .003 0.0001 0.000003 Cost=$38K*Downtime $1660M $330M $10M $0.33M $0.01M SW Life-cycle Cost $15.5M $14.2M $13.2M $13.5M $15.2M Ownership Cost $1675.5M $344.2M $23.2M $13.8M
Outline COCOMO II Objective: Decision Support Example Company: UST, Inc. Auto Parts Frequent Software Decisions Investment; Business Case Analysis Setting Project Budgets and Schedules Performing Tradeoff Analysis Cost Risk Management Development vs. Reuse Legacy Software Phaseout Software Process Improvement Software Organizational Decisions Conclusions
Cost Risk Management Risk reserve for requirement volatility Estimate as high as 15% Resulting cost = 2.94*(100+15)^1.10*($8K)=$5130K Risk reserve = $5130K – 4400K = $730K Risk reserve for less experienced personnel Average applications, platform experience ½-level lower Resulting cost = $4400K*(1.05)*(1.045)=$4828K Risk reserve = $428K Jim: “k” -> “K” throughout. “Platform” -> “platform”.
Development vs. Reuse Possibility of reusing a 40 KSLOC component Reuse parameters not a strong match % design modified DM=40 % code modified CM=50 % integration redone IM=100 Understanding penalty SU=50 SW unfamiliarity UMFM=1.0 Assessment and assimilation AA =5% Equivalent new lines of code = 40k*[(0.4*40+0.3*50+0.3*100)/100+(5+50*1.0)/100] = 40k * (0.61 + 0.55) = 46.4KSLOC Not a good decision to reuse Jim: “Adaptation of assessment” -> “Assessment and assimilation”
Legacy Software Phaseout Candidate: Corporate property accounting system 50K COBOL program; 20% annual change (10K) SU = 50: poorly structured, documented UNFM = 0.7: few people familiar with code Equivalent annual maintenance size = 10KSLOC * [1 + (50*0.7)/100] = 13.5 KSLOC/year 3 years: 40.5K SLOC Replacement could use MCS GUI, DBMS Only 20 KSLOC of new software needed; 20% annual change (4KSLOC) SU = 25: better structured, documented UNFM = 0.4: New developers familiar with the code 4KSLOC * [1+ (25*0.4)/100] = 4.4 KSLOC/year 3 years + development = 3*4.4+20 = 33.2 KSLOC Better to phase out and replace legacy SW
Software Process Improvement UST currently at Process maturity Level 2 Planning & control, config. Management, quality assurance Cost to achieve level 3 (process group, training, product engr.) Process group: (2yr)*(4 persons)*($96K/yr) = $768K Training: (200 persons)*(3weeks)*($96K/yr) = $1108K Contingency = $124K; Total = 768+1108+124 = $2000K Benefit: scale exponent reduced by .0468-.0312=.0156, to 1.10 – 0.0156 = 1.0844 From 100^1.10 = 158.5 to 100^1.0844 = 147.5, or 7% less effort Annual savings = (200 persons)*(96K/yr)(.07)=$1344K 5 year ROI = [5*$1344K-$2000K]/$2000K = 2.36 Again, well worth the investment
Outline COCOMO II Objective: Decision Support Example Company: UST, Inc. Auto Parts Frequent Software Decisions Investment; Business Case Analysis Setting Project Budgets and Schedules Performing Tradeoff Analysis Cost Risk Management Development vs. Reuse Legacy Software Phaseout Software Process Improvement Software Organizational Decisions Conclusions
COCOMO II Experience Factory: I Rescope System objectives: fcn’y, perf., quality No Cost, Sched, Risks COCOMO 2.0 Ok? Yes Corporate parameters: tools, processes, reuse
COCOMO II Experience Factory: II Rescope Execute project to next Milestone System objectives: fcn’y, perf., quality No Cost, Sched, Risks Revise Milestones, Plans, Resources COCOMO 2.0 Ok? Yes Corporate parameters: tools, processes, reuse M/S Results Milestone plans, resources No Ok? Milestone expectations Revised Expectations Yes Done? No Yes End
COCOMO II Experience Factory: III Rescope Execute project to next Milestone System objectives: fcn’y, perf., quality No Cost, Sched, Risks Revise Milestones, Plans, Resources COCOMO 2.0 Ok? Yes Corporate parameters: tools, processes, reuse M/S Results Milestone plans, resources No Ok? Milestone expectations Revised Expectations Yes Accumulate COCOMO 2.0 calibration data Done? Recalibrate COCOMO 2.0 No Yes End
COCOMO II Experience Factory: IV Rescope Execute project to next Milestone System objectives: fcn’y, perf., quality No Cost, Sched, Risks Revise Milestones, Plans, Resources COCOMO 2.0 Ok? Yes Corporate parameters: tools, processes, reuse M/S Results Milestone plans, resources No Ok? Improved Corporate Parameters Cost, Sched, Quality drivers Milestone expectations Revised Expectations Yes Evaluate Corporate SW Improvement Strategies Accumulate COCOMO 2.0 calibration data Done? Recalibrate COCOMO 2.0 No Yes End
Conclusions COCOMO II is useful in many decision situations Supports objective discussion and negotiation Most analyses can be done with hand calculator Simpler, easier to explain Usage builds shared understanding and trust Jim: 3 following slides, on homework assignment, deleted.