원문정보
초록
영어
Software refactoring is a collection of reengineering activities that aims to improve software quality. Refactorings are commonly used in agile software processes to improve software quality after a significant software development or evolution. There is belief that refactoring improves quality factors such as understandability, flexibility, and reusability. However, there is limited empirical evidence to support such assumptions. The aim of this study is to confirm such claims using a hierarchal quality model. We study the effect of software refactoring on software quality. We provide details of our findings as heuristics that can help software developers make more informed decisions about what refactorings to perform in regard to improve a particular quality factor. We validate the proposed heuristics in an empirical setting on two open-source systems. We found that the majority of refactoring heuristics do improve quality; however some heuristics do not have a positive impact on all software quality factors. In addition, we found that the impact analysis of refactorings divides software measures into two categories: high and low impacted measures. These categories help in the endeavor to know the best measures that can be used to identify refactoring candidates. We validated our findings on two open-source systems—Eclipse and Struts. For both systems, we found consistency between the heuristics and the actual refactorings.
목차
1. Introduction
2. Related Work
3. The Quality Model for Object-Oriented Design
4. Research Methodology
4.1 Software Measures
4.2 Software Refactoring
5. Refactoring Analysis
5.1 Refactoring Impact Analysis
5.2 Refactoring impact analysis on quality factors
5.3 Discussion
6. Empirical Validation
6.1 EclipseUI Case Study
6.2 Struts Case Study
7. Conclusion
7.1 Study Limitations and Future Work
References