190 likes | 399 Views
Investigating the Default Behavior of Requirements Evolution in COCOMO II Dan Strickland Dynetics, Inc. daniel.strickland@dynetics.com. Background of Requirements Evolution and Volatility in COCOMO II Using Other Popular Estimating Models’ Approaches
E N D
Investigating the Default Behavior of Requirements Evolution in COCOMO IIDan StricklandDynetics, Inc.daniel.strickland@dynetics.com
Background of Requirements Evolution and Volatility in COCOMO II Using Other Popular Estimating Models’ Approaches Requirements Evolution Using the Rosetta Stone Requirements Evolution Using REVIC II Using Outside Formulas for Guidance Future Work and Conclusions Overview
Estimators have a difficult time explaining the COCOMO II factor for Requirements Evolution and Volatility (REVL) to customers and even other estimators The simple questions tend to be the most difficult to answer: “What’s a good value for Requirements Evolution?” “Why can’t we just use the industry standard here?” “Just use your best judgement, whatever would be typical for this program.” Estimators need some guidance as to how REVL behaves normally and how to adjust the parameter for best results Background
In early versions of COCOMO 81, Requirements Volatility (RVOL) was a cost driver ranging from Low to Extra High in rating RVOL was changed to a percentage multiplier of Size because the cost driver was too volatile and subjective In COCOMOII.1999, RVOL was changed in name only to Breakage(BRAK) In 2000, COCOMO II settled on Requirements Evolution and Volatility (REVL) as a percentage multiplier of Effective Size caused by volatility and evolution of baselined requirements REVL is a percentage measure of “wasted effort” expressed in COCOMO II’s primary unit, Source Lines of Code In COCOMO II, a 10% change in REVL can have more impact than a two-level change in CMM Level Without the textual guidance from RVOL, REVL can severely impact an estimate (“With great power comes great responsibility” - Uncle Ben Parker) History of COCOMO II’s REVL Factor
Models used: SEER-SEM, Cost Xpert, REVIC SEER-SEM : Requirements Volatility (Change) : ranges from Low (“essentially no requirements changes”) to Extra High (“frequent major changes”) Cost Xpert : Requirements Evolution Volatility : ranges from Nominal to Extra High REVIC : Requirements Volatility : ranges from Low to Extra High Sample projects of different sizes were run to capture the percentage change to effort caused by changes in each model’s Requirements factor only Assuming that conceptually all the models start from zero impact to effort and work up, the deltas were aligned without rating headings to show a potential range from zero Other Popular Estimation Models GOAL: Develop guidelines for REVL using other popular costing models and the textual descriptions from COCOMO 81’s RVOL
Other Popular Estimation Models (cont’d) • Percent change in estimated effort between ratings • Size is not a factor as the deltas are stable • Average of each delta was taken to develop a consensus range (only 2 values for Delta 4) • The models assume a lowest value of “no requirements volatility” which is equal to a REVL of 0% • Using the rating and description from RVOL, the average of the Deltas form a range for REVL • LO = 0% to average (Delta 1), etc.
Uses the effort formula from COCOMO 81 with RVOL added back in and KDSI converted to KSLOC (reduce KDSI by 25% for 3rd Generation Languages) Uses the effort formula from COCOMO II with Scale Factors set as described in Rosetta Stone; PMAT = Low as MODP = Nominal Corresponding development mode formulas (Embedded, Semi-detached, Organic) are set equal to one another Formulas assume no impact from other cost drivers; set equal to 1.0 Formulas are reduced to show REVL as a function of RVOL and Size Result is three formulas corresponding to the three development modes Using the Translations - Rosetta Stone GOAL: Develop formula for REVL as a function of RVOL using COCOMO 81 effort, COCOMO II effort, and the Rosetta Stone
Example for Embedded Mode: EffortE81 = 2.8 * RVOL * (Size * 0.75)1.20 EffortEII = 2.94 * (REVL * (Size))1.152 2.94 * (REVL * (Size))1.152 = 2.8 * RVOL * (Size * 0.75)1.20 (REVL * (Size))1.152 = 0.9524 * RVOL * Size1.20 * 0.7081 (REVL * (Size))1.152 = 0.6744 * RVOL * Size1.20 REVL * Size = 0.7104 * RVOL0.8681 * Size1.0417 REVL (Embedded) = 0.7104 * RVOL0.8681 * Size0.0417 Other Development Modes: REVL (Semi-detached) = 0.7515 * RVOL0.9461 * Size0.0596 REVL (Organic) = 0.7996 * RVOL1.0288 * Size0.0802 Using the Translations - Rosetta Stone - Reduction Example
Using the Translations - Rosetta Stone - Results • Results for Organic and Semi-detached are too high (80% for Nominal, Organic, 25 KSLOC) • Results for Embedded look acceptable, but need a way to make all the results equally acceptable
Target: Develop a multiplicative bias that sets the results of Low to 1.0 (0% REVL) for every result The bias is the inverse of the value for Low, changing with each size and development mode Assume the bias is carried through the column for each size and development mode Result is the “floor value” for each rating Also equal to the Cumulative Percentage Delta between results for REVL, size independent Example: For Embedded mode, a Nominal Requirements Volatility is equal to REVL between 8.5% and 24.8% Using the Translations - Rosetta Stone - Using a Bias
Uses the effort formula from REVIC (includes RVOL) and KDSI converted to KSLOC (reduce KDSI by 25% for 3rd Generation Languages) Uses the effort formula from COCOMO II with Scale Factors set as described in REVIC II Corresponding development mode formulas (Embedded, Semi-detached, Organic) are set equal to one another Formulas assume no impact from other cost drivers; set equal to 1.0 Formulas are reduced to show REVL as a function of RVOL Result is three formulas corresponding to the three development modes Using the Translations - REVIC II GOAL: Develop formula for REVL as a function of RVOL using REVIC effort, COCOMO II effort, and REVIC II
Example for Embedded Mode: EffortEREV = 3.312 * RVOL * (Size * 0.75)1.20 EffortERII = 4.227 * (Size * REVL)1.20 4.227 * (Size * REVL)1.20 = 3.312 * RVOL * (Size * 0.75)1.20 (Size * REVL)1.20 = 0.7835 * RVOL * Size1.20 * 0.7081 (Size * REVL)1.20 = 0.5548 * RVOL * Size1.20 Size * REVL = 0.6120 * RVOL0.8333 * Size REVL (Embedded) = 0.6120 * RVOL0.8333 Other Development Modes: REVL (Semi-detached) = 0.6280 * RVOL0.8929 REVL (Organic) = 0.6205 * RVOL0.9524 Using the Translations - REVIC II - Reduction Example
Using the Translations - REVIC II - Results • Results are poor for all modes with all values falling below 1.0 (0% REVL) • Adjust the results using the same bias technique used for Rosetta Stone
Target: Develop a multiplicative bias that sets the results of Low to 1.0 (0% REVL) for every result The bias is the inverse of the value for Low, changing with each development mode Assume the bias is carried through the column for each development mode Result is the “floor value” for each rating Also equal to the Cumulative Percentage Delta between results for REVL, size independent Example: For Embedded mode, a Nominal Requirements Volatility is equal to REVL between 8.2% and 23.8% Using the Translations - REVIC II - Using a Bias
Assumes all six results are equally likely Use the average of all six values to get a single “floor value” for each corresponding rating Values rounded to integer values to be consistent with REVL input Using the Translations - Rosetta Stone/REVIC Guide GOAL: Develop single guide for REVL using COCOMO 81 text and ratings, Rosetta Stone REVL guide, and REVIC II REVL guide
Capers Jones Requirements Volatility Metric: one percent per month is expected Tested with Softstar Systems’ Costar 6.0 tool default scale factors, cost drivers, and calibration model different Sizes REVL starts at 0% and raised to match initial Duration changes made, so that there is a REVL that matches Duration (large sizes require more changes) Other Literature on Requirements Volatility - One Percent Metric
Stark, Skillcorn, and Ameele: Y = 0.97 + 0.41 * X0.5 + 0.23 * Z Y = Percent Schedule Change X = Requirements Volatility Z = Risk (Change Requests Per Staff-Day) Expressing as a formula for Requirements Volatility: X = ((Y - (0.23 * Z) - 0.97) / 0.41)2 Assuming Risk is equal to the median value from the study (0.1): X = ((Y - 0.993) / 0.41)2 Defines Requirements Volatility in terms of Percent Schedule Change An equivalent measure in COCOMO II is the Development Schedule (SCED) driver, which changes effort with compression, but not with expansion If metrics on past schedule performance are available, an expected default REVL could be set Other Literature on Requirements Volatility - Percent Schedule Change Formula
100% is equal to the default schedule (no slips) More research is needed in this area Other Literature on Requirements Volatility - Percent Schedule Change Formula (cont’d)
Define more textual guidelines to further define ranges (include plus and minus notation like USC-COCOMO tool) Investigate more commercial tools for Requirements Volatility methods Identify more formulas outside of the common tools including case studies Gather industry data on REVL from completed estimates to gauge how estimators are using the value Future Work and Conclusions • Work provided gives: • Guidance to default REVL behavior through popular model consensus • Guidance to default REVL behavior through translation models • Guidance to REVL behavior using other literature