Refactoring is a technical approach to increase the internal quality of software without altering its external functionalities. Developers often invest significant effort in refactoring. With the increased adoption of continuous integration and development (CI/CD), refactoring activities may vary within and across different releases and be influenced by various release goals. For example, practitioners may consistently allocate refactoring activities throughout a release, or prioritize new features early on in a release and only pick up refactoring late in a release. Different approaches to allocating refactoring tasks may have different implications for code quality. However, there is a lack of existing work to understand how practitioners distribute their refactoring activities in a release and their impact. Therefore, we first empirically study the frequent release-wise refactoring patterns in 207 open-source Java projects and their characteristics. Then, we analyze how these patterns and their transitions affect code quality. We identify four major release-wise refactoring patterns: early active, late active, steady active, and steady inactive. We find that adopting the late active pattern—characterized by gradually increasing refactoring activities as the release approaches—leads to the best code quality. We observe that as projects mature, refactoring becomes more active, reflected in the increasing use of the steady active release-wise refactoring pattern and the decreasing utilization of the steady inactive release-wise refactoring pattern. While the steady active pattern shows improvement in quality-related code metrics (e.g., cohesion), it can also lead to more architectural problems. Additionally, we observe that developers tend to adhere to a single refactoring pattern rather than switching between different patterns. The late active pattern, in particular, can be a safe release-wise refactoring pattern that is used repeatedly. Our results can help practitioners understand existing release-wise refactoring patterns and their effects on code quality, enabling them to utilize the most effective pattern to enhance release quality.
Tue 24 JunDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
14:00 - 15:20 | Empirical Studies 1Research Papers / Journal First at Cosmos 3A Chair(s): Letizia Jaccheri Norwegian University of Science and Technology (NTNU) | ||
14:00 20mTalk | Core Developer Turnover in the Rust Package Ecosystem: Prevalence, Impact, and Awareness Research Papers Meng Fan Beijing Institute of Technology, Yuxia Zhang Beijing Institute of Technology, Klaas-Jan Stol Lero; University College Cork; SINTEF Digital , Hui Liu Beijing Institute of Technology DOI | ||
14:20 20mTalk | A Comprehensive Study of Governance Issues in Decentralized Finance Applications Journal First Wei Ma Singapore Management University, Chenguang Zhu Meta AI, Ye Liu Singapore Management University, Xiaofei Xie Singapore Management University, Yi Li Nanyang Technological University Link to publication Pre-print | ||
14:40 20mTalk | An Empirical Study on Release-Wise Refactoring Patterns Research Papers Shayan Noei Queen's University, Heng Li Polytechnique Montréal, Ying Zou Queen's University, Kingston, Ontario DOI | ||
15:00 20mTalk | Towards enhancing the reproducibility of deep learning bugs: an empirical study Journal First Mehil Shah Dalhousie University, Masud Rahman Dalhousie University, Foutse Khomh Polytechnique Montréal Link to publication Pre-print |
Cosmos 3A is the first room in the Cosmos 3 wing.
When facing the main Cosmos Hall, access to the Cosmos 3 wing is on the left, close to the stairs. The area is accessed through a large door with the number “3”, which will stay open during the event.