ABSTRACT
Refactoring is the practice of changing source code without altering its external behavior. It is widely used since it is acknowledged to have a positive effect on software quality. However, different studies on the impact of Refactoring on software quality led to contrasting results. This might be due also to the fact that research works on Refactoring rely on different approaches to collect information about the refactoring activity on software repositories. Having a reliable approach is fundamental to draw solid conclusions. In this paper we empirically analyzed two of the most popular approaches to detect the refactoring activity on software repositories, finding that they return different outcomes. These results should be taken into account by researchers while designing the experimental settings of their studies.
- V. R. Basili. Software modeling and measurement: The goal/question/metric paradigm. Technical report, College Park, MD, USA, 1992. Google ScholarDigital Library
- D. Dig, C. Comertoglu, D. Marinov, and R. Johnson. Automated detection of refactorings in evolving components. In Proceedings of the 20th European Conference on Object-Oriented Programming, ECOOP'06, pages 404--428, Berlin, Heidelberg, 2006. Springer-Verlag. Google ScholarDigital Library
- M. Fowler. Refactoring: improving the design of existing code. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1999. Google ScholarDigital Library
- A. Hindle, D. German, and R. Holt. What do large commits tell us? a taxonomical study of large commits. pages 99--108, 2008. Google ScholarDigital Library
- Kim, M. Gee, A. Loh, and N. Rachatasumrit. Ref-finder: A refactoring reconstruction tool based on logic query templates. In Proceedings of the Eighteenth ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE '10, pages 371--372, New York, NY, USA, 2010. ACM. Google ScholarDigital Library
- M. Kim, D. Cai, and S. Kim. An empirical investigation into the role of api-level refactorings during software evolution. In Proceedings of the 33rd International Conference on Software Engineering, ICSE 2011, Waikiki, Honolulu, HI, USA, May 21-28, 2011, pages 151--160, 2011. Google ScholarDigital Library
- M. Kim, T. Zimmermann, and N. Nagappan. An empirical study of refactoringchallenges and benefits at microsoft. IEEE Trans. Software Eng., 40(7):633--649, 2014. Google ScholarDigital Library
- E. Murphy-Hill, A. Black, D. Dig, and C. Parnin. Gathering refactoring data: A comparison of four methods. 2008.Google Scholar
- E. Murphy-Hill, C. Parnin, and A. Black. How we refactor, and how we know it. IEEE Transactions on Software Engineering, 38(1):5--18, 2012. Google ScholarDigital Library
- W. F. Opdyke. Refactoring object-oriented frameworks. Technical report, 1992. Google ScholarDigital Library
- C. Parnin and C. Görg. Improving change descriptions with change contexts. In Proceedings of the 2008 International Working Conference on Mining Software Repositories, MSR '08, pages 51--60, New York, NY, USA, 2008. ACM. Google ScholarDigital Library
- K. Prete, N. Rachatasumrit, N. Sudan, and M. Kim. Template-based reconstruction of complex refactorings. In Proceedings of the 2010 IEEE International Conference on Software Maintenance, ICSM '10, pages 1--10, Washington, DC, USA, 2010. IEEE Computer Society. Google ScholarDigital Library
- J. Ratzinger. sPACE: Software Project Assessment in the Course of Evolution. PhD thesis, 2007.Google Scholar
- J. Ratzinger, T. Sigmund, and H. Gall. On the relation of refactoring and software defects. pages 35--38, 2008. Google ScholarDigital Library
- J. Ratzinger, T. Sigmund, P. Vorburger, and H. Gall. Mining software evolution to predict refactoring. pages 354--363, 2007. Google ScholarDigital Library
- G. Soares, R. Gheyi, E. Murphy-Hill, and B. Johnson. Comparing approaches to analyze refactoring activity on software repositories. Journal of Systems and Software, 86(4):1006--1022, 2013. Google ScholarDigital Library
- K. Stroggylos and D. Spinellis. Refactoring--does it improve software quality? In Proceedings of the 5th International Workshop on Software Quality, WoSQ '07, pages 10--, Washington, DC, USA, 2007. IEEE Computer Society. Google ScholarDigital Library
- K. Taneja, D. Dig, and T. Xie. Automated detection of api refactorings in libraries. In Proceedings of the Twenty-second IEEE/ACM International Conference on Automated Software Engineering, ASE '07, pages 377--380, New York, NY, USA, 2007. ACM. Google ScholarDigital Library
- P. Weißgerber and S. Diehl. Identifying refactorings from source-code changes. pages 231--240, 2006. Google ScholarDigital Library
- Z. Xing and E. Stroulia. Refactoring practice: How it is and how it should be supported - an eclipse case study. In Proceedings of the 22Nd IEEE International Conference on Software Maintenance, ICSM '06, pages 458--468, Washington, DC, USA, 2006. IEEE Computer Society. Google ScholarDigital Library
Recommendations
A case study on the relationship between code ownership and refactoring activities in a Java software system
WETSoM '16: Proceedings of the 7th International Workshop on Emerging Trends in Software MetricsRefactoring, the activity of changing source code design without affecting its external behavior, is a widely used practice among developers, since it is considered to positively affect the quality of software systems. However, there are some "human ...
When Does a Refactoring Induce Bugs? An Empirical Study
SCAM '12: Proceedings of the 2012 IEEE 12th International Working Conference on Source Code Analysis and ManipulationRefactorings are - as defined by Fowler - behavior preserving source code transformations. Their main purpose is to improve maintainability or comprehensibility, or also reduce the code footprint if needed. In principle, refactorings are defined as ...
Refactoring for reuse: an empirical study
AbstractRefactoring is the de-facto practice to optimize software health. While several studies propose refactoring strategies to optimize software design through applying design patterns and removing design defects, little is known about how developers ...
Comments