Local Calibration for Maintenance Projects (with High Personnel Turnover) Anandi Hira, USC
Metrics and Terms SLOC (source lines of code) Logical SLOC Unified Code Count (UCC) Equivalent SLOC (Vu Nguyen’s PhD Dissertation slight modification to COCOMO® II’s reuse model) Normalized Effort (hours)
Presentation Outline Unified Code Count COCOMO® (SLOC-based) Function Points Estimate Effort Estimate ESLOC SNAP Points
Unified Code Count SLOC counting metrics (such as logical SLOC, cyclomatic complexity) C++ 45 to 1425 logical SLOC 10% personnel continuity every 4 months Project Types: New Language Parsers New Features (such as GUI, output options, etc.) New Metrics (modify current language parsers)
Presentation Outline Unified Code Count COCOMO® (SLOC-based) Function Points Estimate Effort Estimate ESLOC SNAP Points
COCOMO® Model Adjust All Projects Project-Specific Personnel Continuity (PCON) Lowest: 52% / year UCC: 10% / 4 mo. Applications Experience (APEX) Low Documentation Match to Needs (DOCU) Platform Experience (PLEX) Low Analyst Capability (ACAP) Tool Use (TOOL) Very Low Programmer Capability (PCAP) Complexity (CPLX)
Local Calibration Results PCON = 1.757 Fixed Cost = 218.752 hrs. Observations 27 R2 0.90 PRED (20) 70.37 PRED (25) PRED (30) 88.889
Presentation Outline Unified Code Count COCOMO® (SLOC-based) Function Points Estimate Effort Estimate ESLOC SNAP Points
Function Points vs Effort
Add Functions: EFP vs Effort + 236.92 R2 0.928 PRED (20) 100 PRED (25) PRED (30)
Add Functions: EFP vs ESLOC ESLOC = -26.081 + 13.607 × EFP + 19.316 × # modified functions EFP vs ESLOC Regression Statistics EFP vs Effort using ESLOC estimates EFP vs Effort Regression Statistics R2 0.901 PRED (20) 62.5 PRED (25) 75 PRED (30) R2 N/A PRED (20) 37.5 PRED (25) 50 PRED (30) R2 0.928 PRED (20) 100 PRED (25) PRED (30)
Modifications to Functions: EFP vs Effort Effort = 199.48 – 2.53 × CHGA + 5.99 × CHGB – 55.46 × # mod files + 51.04 × # New funct + 61.42 × # Mod Funct R2 0.727 PRED (20) 57.143 PRED (25) 71.429 PRED (30) 85.714
Mod Functions: EFP vs ESLOC ESLOC = 103.63 + 0.39 × EFP^ (-0.04 × mod files + 0.09 × new funct + 1.34) EFP vs ESLOC Regression Statistics EFP vs Effort using ESLOC estimates EFP vs Effort Regression Statistics R2 0.713 PRED (20) 38.09 PRED (25) PRED (30) 61.91 R2 N/A PRED (20) 19.05 PRED (25) PRED (30) 23.81 R2 0.727 PRED (20) 57.14 PRED (25) 71.43 PRED (30) 85.71
Presentation Outline Unified Code Count COCOMO® (SLOC-based) Function Points Estimate Effort Estimate ESLOC SNAP Points
Conclusion Local Calibration leads to better estimates Environment may require adjustments to cost drivers Function Points lead to good effort estimates for new functions Function Points do not account for calculation More research needed for SNAP Future Work: Try other size measures