Function Point Analysis for Software Maintenance Anandi Hira and Barry Boehm CREST Open Workshop – Predictive Models in Software Engineering: Measures, Models, and Benchmark
Outline Motivation Introduction Goal Metrics Dataset Baseline SLOC Model Analyses Results Validity Considerations Conclusions 2
Motivation ❖ New development cost models > software maintenance cost models ❖ Source lines of code (SLOC) most common software size input Difficult to estimate early in lifecycle ❖ Function points (FPs) represents software size by functions or modifications to functions Easier to calculate earlier in lifecycle Widely used to estimate effort and SLOC 3
Goal Answer following questions with empirical analysis: 1. Can Function Points effectively estimate effort for software maintenance projects? 2. Does using a Function Points to SLOC ratio add a layer of uncertainty to estimates? 4
Dataset: Unified Code Count (UCC) Project Description Project Types • • Maintained at University of Add Functions Southern California (USC) o New language parsers • Code metrics tool (logical o New features, such as GUI SLOC, cyclomatic complexity) front-end • Implemented in C++ • Modify functions • 45 to 1425 logical SLOC o Cyclomatic complexity • 2010 to 2014 support (modify existing language parsers with • Modularized architecture mathematical operation • 4-month time-boxed and algorithms) increments 5
Outline Introduction Function Points Metrics Normalized Effort Baseline SLOC Model Equivalent SLOC Analyses Results Validity Considerations Conclusions 6
Function Points – 1/2 Complexity� of� Components� Multiplier� Factor� Type� of� Component� Low� Average� High� Total� External� Inputs� 3� 4� 6� � External� Outputs� 4� 5� 7� � External� Inquiries� 3� 4� 6� � Internal� Logical� Files� 7� 10� 15� � External� Interface� Files� 5� 7� 10� � Total� Number� of� Unadjusted� Function� Points� � 7
Function Points – 2/2 General System Characteristics General System Characteristics Cntd. • • Installation ease Data communications • • Operational ease Distributed data processing • • Multiple sites Performance • • Facilitate change Heavily used configuration • Transaction rate Equations: Value Adjustment Factor (VAF), Enhancement Project FP (EFP) • Online data entry å ) ( C i • End-user efficiency VAF� =� 0.65� +� 100 • Online update )� ´ � EFP� =� [� (� ADD� +� CHGA� VAFA� ]� • Complex processing ´ � � � � � � � � � � � +� (� DEL� VAFB� ) • Reusability 8
Normalized Effort COCOMO model: 17 (PM) = 2.94 ´ Size 1.0997 ´ Õ Effort� EM i i = 1 PM = 152� hours (hours) = Total� Effort� (hours) Normalized� Effort� ( ) Õ EM i 9
Equivalent SLOC (ESLOC) AAF = 0.4* DM + CM + 0.3* IM DM Design Modification ì é ù æ ö 2 ï AA + AAF + 1 - 1 - AAF ê ú CM Code ç ÷ ú * SU * UNFM ï ê è ø 100 Modification ë û ï � � ï 100 IM Integration and ï ï ï Test AAM = í AAF� £ � � � � � � � � � � � if� 100 ï SU Software ï Understanding ï AA + AAF + SU * UNFM � � � if� AAF� >� 100 ï UNFM Programmer 100 ï ï Unfamiliarity ï î AA Assessment and ESLOC = SLOC added + ( ASLOC * AAM ) Assimilation 10
Outline Introduction Metrics Baseline SLOC Model Analyses Results Validity Considerations Conclusions 11
Baseline SLOC Model æ ö 1.0997 17 Effort = 446.88 ´ ESLOC Õ ´ ç ÷ EM i è ø 1000 i = 1 R 2 90% PRED (20) 70% PRED (25) 70% PRED (30) 89% 12
Outline Introduction Metrics Baseline SLOC Model Adding Functions Analyses Results Modifying Functions Validity Considerations Conclusions 13
RESULTS: ADDING FUNCTIONS 14
FPs vs Normalized Effort Normalized Effort = 302.06 + (17.312 × EFP ) 1200 Normalized Effort (hours) 1000 R 2 80% 800 PRED (20) 82% 600 PRED (25) 82% 400 PRED (30) 100% 200 0 0 10 20 30 40 Enhancement Project Function Points (EFPs) 15
FPs vs ESLOC ESLOC = -26.081 + (13.607 × EFP) + (19.316 × # modified modules) ESLOC Estimates Effort Estimates R 2 90% PRED (20) 50% PRED (20) 63% PRED (25) 50% ESLOC estimates PRED (25) 75% PRED (30) 75% with Baseline SLOC model PRED (30) 75% 16
RESULTS: MODIFYING FUNCTIONS 17
FPs vs Normalized Effort Normalized Effort (hours) = 80.987 R 2 73% – (1.027 × CHGA) + (2.433 × CHGB) PRED (20) 21% – (22.485 × # modified files) PRED (25) 47% + (20.703 × # new modules) PRED (30) 63% + (24.909 × # modified modules) 18
FPs vs ESLOC ESLOC = 103.630+0.396 × EFP [1.336 + (-0.039 × #modified files) + (0.088 × # new modules)] ESLOC Estimates Effort Estimates R 2 71% PRED (20) 19% PRED (20) 38% PRED (25) 19% ESLOC estimates PRED (25) 38% PRED (30) 24% with Baseline SLOC model PRED (30) 62% 19
Outline Introduction Metrics Baseline SLOC Model Analyses Results Validity Considerations Conclusions 20
Validity Considerations Internal External ❖ Segregation between ❖ Reported effort may not be adding functions and accurate modifying functions Forget to update timesheets Test and verify on other Show high productivity datasets Show excessive hours ❖ Linear relationship does not account for diseconomies of Mitigation scale ❖ Members evaluated on Analyze on datasets with ability to meet deadlines, larger projects for scalable adapt to problems, results communicate clearly 21
Conclusions ❖ Function Points effective to estimate affect? Add functions: Yes! Modify functions: No (even with additional metrics) ❖ Function Points to SLOC ratio effective for effort estimates? Adds layer of uncertainty Resulting effort accuracy unsatisfactory 22
Recommend
More recommend