University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 1 Reuse and Maintenance Estimation Vu Nguyen March 17, 2009 Center for Systems and Software Engineering University of Southern California
Center for Systems and Software Engineering © 2009, USC-CSSE 2 Reuse and Maintenance – A Source Code Perspective Acquired Pieces Exiting System’s Pieces Reused Pieces (Unmodified) New Pieces Adapted Pieces (modified, deleted, added) Project Execution
University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 3 COCOMO II Reuse and Maintenance Models Reuse Model Maintenance Model Size = (Size Added + Size Modified) * (1 + SU*UNFM/100)
University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 4 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
University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 5 Adaptation Adjustment Modifier (AAM) Relative Cost New AAM formula: AAM worse case: AA = 8 UNFM = 1 SU = 50 Relative # of interfaces checked New AAM formula Old AAM formula Relative Amount of Modification (AAF)
University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 6 Calculating Actual Equivalent SLOC Based on CodeCount Tool Equivalent Adapted KSLOC (EKSLOC adapted ) –Determining “actual” DM adapted, CM adapted, IM adapted DM adapted = CM adapted = IM adapted = KSLOC modified /KSLOC adapted AAF adapted = KSLOC modified /KSLOC adapted –EKSLOC adapted = KSLOC adapted * AAM adapted Equivalent Reused KSLOC (EKSLOC reused ) DM reused = CM reused = 0 (no modification needed) AAM reused = AAF reused = 0.3 * IM reused –EKSLOC reused = 0.3 KSLOC reused * IM reused Total Equivalent KSLOC EKSLOC = KSLOC added + EKSLOC adapted + EKSLOC reused
University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 7 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)
University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 8 Product Factor (cont’d) Calibration with product factor –Each product has multiple releases –Each project is corresponding to a release Regression equation (2) log(PM i ) – [SF i * log(Size i ) + log(EAF i )] = [ 0 + 1 *log(Size i )] * f i (j) j Where productN f i (j) = 1 if product(i) = j j=product1 = 0 otherwise
University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 9 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
University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 10 Dataset A dataset from CSSE’s Affiliate –6 products –29 releases –Application types data processing Military – Ground Test Product No # of Releases
University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 11 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) ModelMMREPRED25PRED30 R R R
University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 12 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)
University of Southern California Center for Systems and Software Engineering © 2009, USC-CSSE 13 Next steps Modify the AAM formula –Apply regression to determine the coefficients for KSLOC added, EKSLOC adapted, EKSLOC reused 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