ABSTRACT
Impure refactoring is defined as a refactoring operation that was saved together with non-refactoring changes or several refactoring operations were saved at the same location stored in source code repositories. Many of existing approaches are not correctly viable for detecting impure refactoring. To mitigate this problem, we propose an approach that detects impure refactoring from commits stored in the repositories using a graph search algorithm. In case study, we applied our approach to two actual classes in Apache Xerces project and confirmed the feasibility of the approach.
- G. Bavota, A. D. Lucia, M. D. Penta, R. Oliveto, and F. Palomba. An experimental investigation on the innate relationship between quality and refactoring. J. Syst. Softw., 107(C):1–14, Sept. 2015. Google ScholarDigital Library
- B. Biegel, Q. D. Soetens, W. Hornig, S. Diehl, and S. Demeyer. Comparison of similarity metrics for refactoring detection. In Proc. of MSR, pages 53–62, 2011. Google ScholarDigital Library
- C. G˝ org and P. Weissgerber. Detecting and visualizing refactorings from software archives. In Proc. of IWPC, pages 205–214, 2005. Google ScholarDigital Library
- A. E. Hassan. The road ahead for mining software repositories. In Proc. of FoSM, pages 48–57, 2008.Google ScholarCross Ref
- S. Hayashi, Y. Tsuda, and M. Saeki. Search-based refactoring detection from source code revisions. IEICE Trans. Inf. Syst., E93-D(4):754–762, apr 2010.Google Scholar
- V. Levenshtein. Binary Codes Capable of Correcting Deletions, Insertions and Reversals. Soviet Physics Doklady, 10:707, 1966.Google Scholar
- R. Mahouachi, M. Kessentini, and M. Ó Cinnéide. Search-based refactoring detection. In Proc. of GECCO Companion, pages 205–206, 2013. Google ScholarDigital Library
- N. A. Milea, L. Jiang, and S.-C. Khoo. Vector abstraction and concretization for scalable detection of refactorings. In Proc. of FSE, pages 86–97, 2014. Google ScholarDigital Library
- K. Prete, N. Rachatasumrit, N. Sudan, and M. Kim. Template-based reconstruction of complex refactorings. In Proc. of ICSM, pages 1–10, 2010. Google ScholarDigital Library
- Z. Xing and E. Stroulia. Refactoring detection based on umldiff change-facts queries. In Proc. of WCRE, pages 263–274, 2006. Google ScholarDigital Library
- N. Yoshida, T. Saika, E. Choi, A. Ouni, and K. Inoue. Revisiting the relationship between code smells and refactoring. In Proc. of ICPC, pages 48–57, 2016.Google ScholarCross Ref
- W. Zeng and R. L. Church. Finding shortest paths on real road networks: The case for A*. Int. J. Geogr. Inf. Sci., 23(4):531–543, Apr. 2009. Google ScholarDigital Library
Index Terms
- Graph-based approach for detecting impure refactoring from version commits
Recommendations
The three-step refactoring detector pattern
EuroPLop '19: Proceedings of the 24th European Conference on Pattern Languages of ProgramsDeveloping a tool that provides support for different refactorings, through a set of refactoring detectors which identify opportunities for source code improvements, is not easy. Our experience in developing such a tool for refactoring object-oriented ...
Impact of change granularity in refactoring detection
ICPC '22: Proceedings of the 30th IEEE/ACM International Conference on Program ComprehensionDetecting refactorings in commit history is essential to improve the comprehension of code changes in code reviews and to provide valuable information for empirical studies on software evolution. Several techniques have been proposed to detect ...
Comments