An Empirical Study on the Impact of Code Duplication-aware Refactoring Practices on Quality Metrics
Eman Abdullah AlOmar

TL;DR
This study empirically investigates how code duplication-aware refactoring practices influence software quality metrics, revealing that certain structural metrics effectively reflect developers' intentions to eliminate code duplicates and impact quality attributes.
Contribution
It identifies specific structural metrics that align with developer intentions to remove code duplicates and analyzes their effects on software quality metrics.
Findings
Some metrics effectively capture code duplication removal intentions.
Different metrics have varying impacts on software quality.
Certain metrics can improve or degrade quality depending on their use.
Abstract
Context: Code refactoring is widely recognized as an essential software engineering practice that improves the understandability and maintainability of source code. Several studies attempted to detect refactoring activities through mining software repositories, allowing one to collect, analyze, and get actionable data-driven insights about refactoring practices within software projects. Objective: Our goal is to identify, among the various quality models presented in the literature, the ones that align with the developer's vision of eliminating duplicates of code, when they explicitly mention that they refactor the code to improve them. Method: We extract a corpus of 332 refactoring commits applied and documented by developers during their daily changes from 128 open-source Java projects. In particular, we extract 32 structural metrics from which we identify code duplicate removal…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsData Quality and Management · Web Data Mining and Analysis · Model-Driven Software Engineering Techniques
