140 likes | 332 Views
Reuse and Maintenance Estimation. Vu Nguyen March 17, 2009 Center for Systems and Software Engineering University of Southern California. Reused Pieces (Unmodified). Adapted Pieces (modified, deleted, added). New Pieces. Reuse and Maintenance – A Source Code Perspective.
E N D
Reuse and Maintenance Estimation Vu Nguyen March 17, 2009 Center for Systems and Software Engineering University of Southern California
Reused Pieces (Unmodified) Adapted Pieces (modified, deleted, added) New Pieces Reuse and Maintenance – A Source Code Perspective Acquired Pieces Project Execution Exiting System’s Pieces
COCOMO II Reuse and Maintenance Models • Reuse Model • Maintenance Model Size = (Size Added + Size Modified) * (1 + SU*UNFM/100)
Limitations • The two models do not converge although reuse and maintenance are indistinguishable • Unclear how to determine the “actual” equivalent SLOC from a completed system • Determining the models’ parameters DM, CM, IM, Adapted SLOC, etc. is difficult • Difficult to calibrate the models • Exploratory results • Smoothed AAM factor • Revised equivalent SLOC
New AAM formula Old AAM formula Relative # of interfaces checked Adaptation Adjustment Modifier (AAM) AAM worse case: AA = 8 UNFM = 1 SU = 50 Relative Cost Relative Amount of Modification (AAF) New AAM formula:
Calculating Actual Equivalent SLOCBased on CodeCount Tool • Equivalent Adapted KSLOC (EKSLOCadapted) • Determining “actual” DMadapted, CMadapted, IMadapted • DMadapted = CMadapted = IMadapted = KSLOCmodified/KSLOCadapted • AAFadapted = KSLOCmodified/KSLOCadapted • EKSLOCadapted = KSLOCadapted * AAMadapted • Equivalent Reused KSLOC (EKSLOCreused) • DMreused = CMreused = 0 (no modification needed) • AAMreused = AAFreused = 0.3 * IMreused • EKSLOCreused = 0.3 KSLOCreused * IMreused • Total Equivalent KSLOC EKSLOC = KSLOCadded + EKSLOCadapted + EKSLOCreused
Product Factor • A product often has multiple releases • Each release is delivered by a project • Each release is based on a baseline release • Unmodified modules are reused • Modified modules are adapted • New modules are added • Some modules are deleted • Inherit overall software complexity • Leverage some environments, processes, personnel, and hence productivity pattern (e.g., decrease or increase)
Product Factor (cont’d) • Calibration with product factor • Each product has multiple releases • Each project is corresponding to a release • Regression equation (2) log(PMi) – [SFi * log(Sizei) + log(EAFi)] = [0 + 1*log(Sizei)] * fi(j) j Where productN fi(j) = 1 if product(i) = j j=product1 = 0 otherwise
Validation • Models • R1: Use existing COCOMO II Reuse Model, A = 2.94, and B = 0.91 • R2: Use the modified formulas above and calibrate A and B values • R3: Same as R2 plus applying the “product factor” using the regression equation (2) • Calculate MMRE, PRED(.25), and PRED(.30) from the three models • Use dataset of 29 releases
Dataset • A dataset from CSSE’s Affiliate • 6 products • 29 releases • Application types • data processing • Military – Ground • Test
Results • Models • R1: Use existing COCOMO II Reuse Model, A = 2.94, and B = 0.91 • R2: Use the modified formulas above and calibrate A and B values • R3: Same as R2 plus applying the “product factor” using the regression equation (2)
Results (cont’d) • The results suggest that the calibrated model generates better estimates • Calibrated model using data from projects for the same product (Model R3) potentially has best performance • Limitations of Model R3 • Calibrated A and B values are unstable, high variant • Calibrated A and B values are sometimes counter-intuitive (e.g., A < 1, B < 0)
Next steps • Modify the AAM formula • Apply regression to determine the coefficients for KSLOCadded, EKSLOCadapted, EKSLOCreused • Perform Delphi survey to determine the constant values of SU, UNFM, DM, CM, IM • Determine the weights of Added, Modified, and Deleted SLOC in adapted modules • Collect more data to calibrate COCOMO cost driver values for maintenance and reuse model • Explore causes of variation in “product factor” • May discover an explanatory driver