English
Related papers

Related papers: RefDiff: Detecting Refactorings in Version Histori…

200 papers

To create unit tests, it may be necessary to refactor the production code, e.g. by widening access to specific methods or by decomposing classes into smaller units that are easier to test independently. We report on an extensive study to…

Software Engineering · Computer Science 2023-03-28 Pavel Reich , Walid Maalej

Decisions on which classes to refactor are fraught with difficulty. The problem of identifying candidate classes becomes acute when confronted with large systems comprising hundreds or thousands of classes. In this paper, we describe a…

Software Engineering · Computer Science 2007-05-23 Richard Wheeldon , Steve Counsell

Context: Software systems are in continuous evolution through source code changes to fixing bugs, adding new functionalities and improving the internal architecture. All these practices are recorded in the version history, which can be…

Software Engineering · Computer Science 2020-01-17 Leandro Ungari Cayres , Bruno Santos de Lima , Rogério Eduardo Garcia

Refactoring is the practice of improving software quality without altering its external behavior. Developers intuitively refactor their code for multiple purposes, such as improving program comprehension, reducing code complexity, dealing…

Computers and Society · Computer Science 2023-11-21 Eman Abdullah AlOmar , Mohamed Wiem Mkaouer , Ali Ouni

Software repositories such as Git have become a relevant source of information for software engineer researcher. For instance, the detection of Commits that fulfill a given criterion (e.g., bugfixing commits) is one of the most frequent…

Software Engineering · Computer Science 2019-06-11 Matias Martinez , Martin Monperrus

Software redesign preserves functionality while improving quality attributes, but manual reuse of code and tests is costly and error-prone, especially in crossrepository redesigns. Focusing on static analyzers where cross-repo redesign…

Software Engineering · Computer Science 2026-04-13 Xiaowen Zhang , Huaien Zhang , Shin Hwei Tan

In this paper, a new approach is proposed for automated software maintenance. The tool is able to perform 26 different refactorings. It also contains a large selection of metrics to measure the impact of the refactorings on the software and…

Software Engineering · Computer Science 2017-10-17 Michael Mohan , Des Greer

How can we identify similar repositories and clusters among a large online archive, such as GitHub? Determiningrepository similarity is an essential building block in studying the dynamics and the evolution of such software ecosystems. The…

Software Engineering · Computer Science 2021-07-13 Md Omar Faruk Rokon , Pei Yan , Risul Islam , Michalis Faloutsos

Refactoring is the process of restructuring existing code without changing its external behavior while improving its internal structure. Refactoring engines are integral components of modern Integrated Development Environments (IDEs) and…

Software Engineering · Computer Science 2025-07-10 Haibo Wang , Zhuolin Xu , Shin Hwei Tan

Code refactoring is a fundamental software engineering practice aimed at improving code quality and maintainability. Despite its importance, developers often neglect refactoring due to the significant time, effort, and resources it…

When done manually, refactoring legacy code in order to eliminate uses of deprecated APIs is an error-prone and time-consuming process. In this paper, we investigate to which degree refactorings for deprecated Java APIs can be automated,…

Software Engineering · Computer Science 2025-04-22 Cristina David , Pascal Kesseli , Daniel Kroening , Hanliang Zhang

It is necessary to gather real refactoring instances while conducting empirical studies on refactoring. However, existing refactoring detection approaches are insufficient in terms of their accuracy and coverage. Reducing the manual effort…

Software Engineering · Computer Science 2021-05-20 Ryo Kuramoto , Motoshi Saeki , Shinpei Hayashi

Reconstructing a method's change history efficiently and accurately is critical for many software engineering tasks, including maintenance, refactoring, and comprehension. Despite the availability of method history generation tools such as…

Software Engineering · Computer Science 2025-10-16 Shahidul Islam , Ashik Aowal , Md Sharif Uddin , Shaiful Chowdhury

Detecting 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…

Software Engineering · Computer Science 2022-12-06 Lei Chen , Shinpei Hayashi

Outdated documentation is a pervasive problem in software development, preventing effective use of software, and misleading users and developers alike. We posit that one possible reason why documentation becomes out of sync so easily is…

Software Engineering · Computer Science 2022-12-06 Wen Siang Tan , Markus Wagner , Christoph Treude

Context: Refactoring is the art of modifying the design of a system without altering its behavior. The idea is to reorganize variables, classes and methods to facilitate their future adaptations and comprehension. As the concept of behavior…

Software Engineering · Computer Science 2021-07-23 Eman Abdullah AlOmar , Mohamed Wiem Mkaouer , Christian Newman , Ali Ouni

Software refactoring plays an important role in software engineering. Developers often turn to refactoring when they want to restructure software to improve its quality without changing its external behavior. Studies show that small-scale…

Software Engineering · Computer Science 2022-02-16 James Ivers , Robert L. Nord , Ipek Ozkaya , Chris Seifried , Christopher S. Timperley , Marouane Kessentini

Discrete diffusion models have emerged as a promising direction for vision-language tasks, offering bidirectional context modeling and theoretical parallelization. However, their practical application is severely hindered by a…

Computation and Language · Computer Science 2025-10-24 Yatai Ji , Teng Wang , Yuying Ge , Zhiheng Liu , Sidi Yang , Ying Shan , Ping Luo

Missing values in high-dimensional, mixed-type datasets pose significant challenges for data imputation, particularly under Missing Not At Random (MNAR) mechanisms. Existing methods struggle to integrate local and global data…

Machine Learning · Computer Science 2025-11-13 Md Atik Ahamed , Qiang Ye , Qiang Cheng

Code changes are an integral part of the software development process. Many code changes are meant to improve the code without changing its functional behavior, e.g., refactorings and performance improvements. Unfortunately, validating…

Software Engineering · Computer Science 2025-02-25 Lars Gröninger , Beatriz Souza , Michael Pradel