English
Related papers

Related papers: RefactorInsight: Enhancing IDE Representation of C…

200 papers

Just-in-time (JIT) compilation coupled with code caching are widely used to improve performance in dynamic programming language implementations. These code caches, along with the associated profiling data for the hot code, however, consume…

Programming Languages · Computer Science 2018-10-24 Xiaoran Xu , Keith Cooper , Jacob Brock , Yan Zhang , Handong Ye

Software visualization approaches for code reviews are often implemented as standalone applications, which use static code analysis. The goal is to visualize the structural changes introduced by a pull / merge request to facilitate the…

Software Engineering · Computer Science 2024-08-16 Alexander Krause-Glau , Lukas Damerau , Malte Hansen , Wilhelm Hasselbring

Integrated development environments (IDE) support developers in a variety of tasks. Unobtrusively capturing developers' cognitive load while working on different programming tasks could help optimize developers' work experience, increase…

Software Engineering · Computer Science 2025-03-06 Fabian Stolp , Charlotte Brandebusemeyer , Franziska Hradilak , Lara Kursawe , Magnus Menger , Franz Sauerwald , Bert Arnrich

We describe how to use refactoring tools to transform a Java program conforming to the Composite design pattern into a program conforming to the Visitor design pattern with the same external behavior. We also describe the inverse…

Software Engineering · Computer Science 2013-07-02 Akram Ajouli , Julien Cohen

Refactoring, the process of improving the code structure of a software system without altering its behavior, is crucial for managing code evolution in software development. Identifying refactoring actions in source code is essential for…

Software Engineering · Computer Science 2025-05-13 Siqi Wang , Xing Hu , Xin Xia , Xinyu Wang

Static analysis tools, or linters, detect violation of source code conventions to maintain project readability. Those tools automatically fix specific violations while developers edit the source code. However, existing tools are designed…

Software Engineering · Computer Science 2020-05-25 Yuki Ueda , Takashi Ishio , Akinori Ihara , Kenichi Matsumoto

Refactoring is a change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behaviour. A database refactoring is a small change to the database schema which…

Software Engineering · Computer Science 2010-09-09 Patrick O'Beirne

Version control systems are integral to software development, with GitHub emerging as a popular online platform due to its comprehensive project management tools, including issue tracking and pull requests. However, GitHub lacks a direct…

Software Engineering · Computer Science 2024-07-31 Rifat Ara Proma , Paul Rosen

Managing issue reports is essential for the evolution and maintenance of software systems. However, manual issue management tasks such as triaging, prioritizing, localizing, and resolving issues are highly resource-intensive for projects…

Software Engineering · Computer Science 2025-02-10 Ahmed Adnan , Antu Saha , Oscar Chaparro

AI-powered coding assistants, like GitHub Copilot, are increasingly used to boost developers' productivity. However, their output quality hinges on the contextual richness of the prompts. Meanwhile, gaze behaviour carries rich cognitive…

Human-Computer Interaction · Computer Science 2025-11-12 Yasmine Elfares , Gül Çalikli , Mohamed Khamis

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

This Innovative Practice full paper explores how Large Language Models (LLMs) can enhance the teaching of code refactoring in software engineering courses through real-time, context-aware feedback. Refactoring improves code quality but is…

Software Engineering · Computer Science 2025-08-14 Anshul Khairnar , Aarya Rajoju , Edward F. Gehringer

Context: Technical Debt needs to be managed to avoid disastrous consequences, and investigating developers' habits concerning technical debt management is invaluable information in software development. Objective: This study aims to…

Software Engineering · Computer Science 2020-09-10 Zadia Codabux , Christopher Dutchyn

Large language models (LLMs) have gained widespread popularity and have steadily improved over time, enabling software developers to use them for various code-related tasks. One common task is code refactoring, where the LLM suggests…

Software Engineering · Computer Science 2026-05-07 David Schön , Faiza Amjad , Tehreem Asif , Ranim Khojah , Mazen Mohamad , Francisco Gomes de Oliveira Neto , Philipp Leitner

In large-scale software systems, there are often no fully-fledged bug reports with human-written descriptions when an error occurs. In this case, developers rely on stack traces, i.e., series of function calls that led to the error. Since…

Software Engineering · Computer Science 2024-12-20 Egor Shibaev , Denis Sushentsev , Yaroslav Golubev , Aleksandr Khvorov

To remain useful for their users, software systems need to continuously enhance and extend their functionality. Nevertheless, in many object-oriented applications, features are not represented explicitly. The lack of modularization is known…

Software Engineering · Computer Science 2014-07-07 T. Pandiyavathi

Tightly coupled and interdependent systems inhibit productivity by requiring developers to carefully coordinate their changes, even when modifying subsystems that should be independent of one another. Poor architectural decisions frequently…

Software Engineering · Computer Science 2023-02-21 Jason Lefever , Yuanfang Cai , Rick Kazman , Hongzhou Fang

AntiCopyPaster is an IntelliJ IDEA plugin, implemented to detect and refactor duplicate code interactively as soon as a duplicate is introduced. The plugin only recommends the extraction of a duplicate when it is worth it. In contrast to…

Software Engineering · Computer Science 2024-02-12 Eman Abdullah AlOmar , Benjamin Knobloch , Thomas Kain , Christopher Kalish , Mohamed Wiem Mkaouer , Ali Ouni

Recent years have seen the development of LLM-based code generation. Compared to generating code in a software project, incremental code edits are empirically observed to be more frequent. The emerging code editing approaches usually…

Software Engineering · Computer Science 2024-08-06 Chenyan Liu , Yufan Cai , Yun Lin , Yuhuan Huang , Yunrui Pei , Bo Jiang , Ping Yang , Jin Song Dong , Hong Mei

Adding small code snippets at key points to existing code fragments is called instrumentation. It is an established technique to debug certain otherwise hard to solve faults, such as memory management issues and data races. Dynamic…

Software Engineering · Computer Science 2009-09-29 J. Maebe , K. De Bosschere