title page
Abstract
Contents
1. Introduction 15
1.1. Motivation 15
1.2. Contribution 15
1.3. Outline of This Dissertation 17
2. Related Work 18
2.1. Significance of Maintenance Cost 18
2.2. Refactoring Impacts on Maintenance 20
2.3. Software Cost Estimation 23
2.4. Refactoring Value Estimation 29
3. Value Based Decision Making Support for Refactoring 31
3.1. Goal 31
3.2. Assumptions 31
3.3. A Process for Refactoring Value Estimation 32
3.3.1. Step 1: Gather Code Data 34
3.3.2. Step 2: Set Refactoring Goals 36
3.3.3. Step 3: Estimate Refactoring Efforts 36
3.3.4. Step 4, 5: Estimate Maintenance Efforts 38
3.3.5. Step 6: Calculate Effort Savings 41
3.3.6. Step 7, 8: Analysis on the Resulting Data 41
3.4. Rationales for the Assumptions 42
3.4.1. Reduction of SLOC by Refactoring 42
3.4.2. Reduction of MCF by Refactoring 44
3.4.3. Improvement of SU by Refactoring 45
3.4.4. Improvement of UNFM by Refactoring 46
3.4.5. Automatic Code Transformation with Few Regression 48
4. A Case Study 52
4.1. Overview 52
4.2. Following the Process Steps 53
4.3. Refactoring ROI Analysis 57
4.4. Sensitivity Analysis 58
4.4.1. Candidate Sensitive Parameters 59
4.4.2. MCF 60
4.4.3. MCF Reduction 60
4.4.4. SLOC Reduction 61
4.4.5. MAF Reduction 62
4.4.6. Discussion of Results 62
5. Conclusion and Future Work 64
국문요약 66
References 68
Acknowledgements 72
Curriculum Vitae 73
Table 1. Post-Architecture Model's Cost Drivers in COCOMO II 25
Table 2. Rating Scale for Software Understanding Increment (SU) of COCOMO II 27
Table 3. Rating Scale for Assessment and Assimilation Increment (AA) of COCOMO II 27
Table 4. Rating Scale for Programmer Unfamiliarity (UNFM) of COCOMO II 28
Table 5. Range of ACT in COCOMO 81 35
Table 6. Data need to be gathered in Step 1 35
Table 7. Goals for Improvement by Refactoring 36
Table 8. Adapted Software Parameter Constraints and Guidelines of COCOMO II 37
Table 9. Parameters for Estimating Refactoring Efforts 38
Table 10. Parameters for Estimating Maintenance Efforts 40
Table 11. Parameters fur Calculation of Effort Savings 41
Table 12. Parameters for Goals for Improvement by Refactoring 42
Table 13. Data on Sample Applications on SLOC Redundancy 43
Table 14. Defect counts from [33] 44
Table 15. Effort and Affected SLOC of Refactorings 49
Table 16. Examples of Refactoring AT percentile 50
Table 17. Measured Data and Refactoring Goals 53
Table 18. Set of All Parameter Values 56
Table 19. Effort Savings against Number of Periods Running 57
Table 20. Comparison of Sensitivities of the Factors 63
Figure 1. Refactoring Value Estimation Process 33
Figure 2. Estimation of Maintenance Effort Savings 58
Figure 3. Sensitivity of Maintenance Effort Savings by MCF 60
Figure 4. Sensitivity of Maintenance Effort Savings by MCF Reduction 61
Figure 5. Sensitivity of Maintenance Effort Savings by SLOC Reduction 61
Figure 6. Sensitivity of Maintenance Effort Savings by MAF Reduction 62
Equation 1. Post-Architecture Model of COCOMO II 34
Equation 2. Size Calculation in Reuse Model in COCOMO II 37
Equation 3. Formula for Application Maintenance Model in COCOMO II 39
Equation 4. Size of Maintenance without Refactoring 39
Equation 5. Size of Maintenance with Refactoring 40
Equation 6. Calculation of the Accumulated Value of Refactoring 41