English
Related papers

Related papers: Diagnosing Refactoring Dangers

200 papers

Most coding-agent benchmarks ask whether generated code behaves correctly. That remains essential, but repository-level engineering is increasingly agent-managed: one agent writes a repository, and later agents inspect, audit, or extend it…

Software Engineering · Computer Science 2026-05-08 Jhen-Ke Lin

Large language models (LLMs) are increasingly used for automated code refactoring tasks. Although these models can quickly refactor code, the quality may exhibit inconsistencies and unpredictable behavior. In this article, we systematically…

Software Engineering · Computer Science 2026-02-26 Norman Peitek , Julia Hess , Sven Apel

This paper reports an empirical study on refactoring activity in three Java software systems. We investigated some questions on refactoring activity, to confirm or disagree on conclusions that have been drawn from previous empirical…

Like software, requirements evolve and change frequently during the development process. Refactoring is the process of reorganising software without changing its behaviour, to make it easier to understand and modify. We propose refactoring…

Software Engineering · Computer Science 2022-01-13 Marie Farrell , Matt Luckcuck , Oisin Sheridan , Rosemary Monahan

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

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

Refactoring is an established technique from the OO-community to restructure code: it aims at improving software readability, maintainability and extensibility. Although refactoring is not tied to the OO-paradigm in particular, its ideas…

Software Engineering · Computer Science 2007-05-23 Tom Schrijvers , Alexander Serebrenik

Identifying drawbacks or insufficiencies in terms of safety is important also in early development stages of safety critical systems. In industry, development artefacts such as components or units, are often reused from existing artefacts…

Software Engineering · Computer Science 2021-06-03 Kai Hoefig , Marc Zeller , Reiner Heilmann

Refactoring is an established technique from the object-oriented (OO) programming community to restructure code: it aims at improving software readability, maintainability and extensibility. Although refactoring is not tied to the…

Software Engineering · Computer Science 2007-05-23 Alexander Serebrenik , Tom Schrijvers , Bart Demoen

A crucial activity in software maintenance and evolution is the comprehension of the changes performed by developers, when they submit a pull request and/or perform a commit on the repository. Typically, code changes are represented in the…

Software Engineering · Computer Science 2025-02-26 Lei Chen , Michele Lanza , Shinpei Hayashi

Architectural erosion is a recurrent problem in software evolution. Despite this fact, the process is usually tackled in ad hoc ways, without adequate tool support at the architecture level. To address this shortcoming, this paper presents…

Software Engineering · Computer Science 2015-06-26 Ricardo Terra , Marco Tulio Valente , Roberto Bigonha , Krzysztof Czarnecki

Large language model (LLM) coding agents can generate working code, but their solutions often accumulate complexity, duplication, and architectural debt. Human developers address such issues through refactoring: behavior-preserving program…

Software Engineering · Computer Science 2026-03-05 Alex Thillen , Niels Mündler , Veselin Raychev , Martin Vechev

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

Detecting vulnerability fix commits in open-source software is crucial for maintaining software security. To help OSS identify vulnerability fix commits, several automated approaches are developed. However, existing approaches like…

Software Engineering · Computer Science 2025-01-28 Xu Yang , Wenhan Zhu , Michael Pacheco , Jiayuan Zhou , Shaowei Wang , Xing Hu , Kui Liu

Repackaging is a serious threat to the Android ecosystem as it deprives app developers of their benefits, contributes to spreading malware on users' devices, and increases the workload of market maintainers. In the space of six years, the…

Software Engineering · Computer Science 2018-11-22 Li Li , Tegawendé Bissyandé , Jacques Klein

Feature selection is a crucial step in building machine learning models. This process is often achieved with accuracy as an objective, and can be cumbersome and computationally expensive for large-scale datasets. Several additional model…

Machine Learning · Computer Science 2024-03-15 Shubham Sharma , Sanghamitra Dutta , Emanuele Albini , Freddy Lecue , Daniele Magazzeni , Manuela Veloso

Program errors can occur in any type of programming, and can manifest in a variety of ways, such as unexpected output, crashes, or performance issues. And program error diagnosis can often be too abstract or technical for developers to…

Software Engineering · Computer Science 2025-01-07 Zhenyu Xu , Victor S. Sheng

The most important way to achieve higher performance in computer systems is through heterogeneous computing, i.e., by adopting hardware platforms containing more than one type of processor, such as CPUs, GPUs, and FPGAs. Several types of…

Software Engineering · Computer Science 2020-05-19 Hugo Andrade , Ivica Crnkovic , Jan Bosch

Context: Developers design test suites to automatically verify that software meets its expected behaviors. Many dynamic analysis techniques are performed on the exploitation of execution traces from test cases. However, in practice, there…

Software Engineering · Computer Science 2015-06-08 Jifeng Xuan , Benoit Cornu , Matias Martinez , Benoit Baudry , Lionel Seinturier , Martin Monperrus

Aspects of frameworks, such as inversion of control and the structure of framework applications, require developers to adjust their debugging strategies as compared to debugging sequential programs. However, the benefits and challenges of…

Software Engineering · Computer Science 2018-01-17 Zack Coker , David Gray Widder , Claire Le Goues , Christopher Bogart , Joshua Sunshine
‹ Prev 1 4 5 6 7 8 10 Next ›