English
Related papers

Related papers: RefDiff: Detecting Refactorings in Version Histori…

200 papers

Vulnerability fixes in open source software (OSS) usually follow the coordinated vulnerability disclosure model and are silently fixed. This delay can expose OSS users to risks as malicious parties might exploit the software before fixes…

Software Engineering · Computer Science 2024-09-26 Xu Yang , Shaowei Wang , Jiayuan Zhou , Xing Hu

Method-level historical information is useful in research on mining software repositories such as fault-prone module detection or evolutionary coupling identification. An existing technique named Historage converts a Git repository of a…

Software Engineering · Computer Science 2021-04-23 Yoshiki Higo , Shinpei Hayashi , Shinji Kusumoto

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

Screenshot-to-code generation aims to translate user interface screenshots into executable frontend code that faithfully reproduces the target layout and style. Existing multimodal large language models perform this mapping directly from…

Computer Vision and Pattern Recognition · Computer Science 2026-02-06 Jie Deng , Kaichun Yao , Libo Zhang

Programming problems can be solved in a multitude of functionally correct ways, but the quality of these solutions (e.g. readability, maintainability) can vary immensely. When code quality is poor, symptoms emerge in the form of 'code…

Software Engineering · Computer Science 2024-03-11 Ivan Tan , Christopher M. Poskitt

Following code style conventions in software projects is essential for maintaining overall code quality. Adhering to these conventions improves maintainability, understandability, and extensibility. Additionally, following best practices…

Software Engineering · Computer Science 2026-01-16 Alvari Kupari , Nasser Giacaman , Valerio Terragni

Large Language Models (LLMs) have demonstrated impressive capabilities in understanding and generating codes. Due to these capabilities, many recent methods are proposed to automatically refine the codes with LLMs. However, we should…

Software Engineering · Computer Science 2024-10-31 Minju Seo , Jinheon Baek , Sung Ju Hwang

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

Code review is a popular practice where developers critique each others' changes. Since automated builds can identify low-level issues (e.g., syntactic errors, regression bugs), it is not uncommon for software organizations to incorporate…

Software Engineering · Computer Science 2023-08-22 Rungroj Maipradit , Dong Wang , Patanamon Thongtanunam , Raula Gaikovina Kula , Yasutaka Kamei , Shane McIntosh

Refactorings are structured changes to existing software that leave its externally observable behaviour unchanged. Their intent is to improve readability, performance or other non-behavioural properties. State-of-the-art automatic…

Programming Languages · Computer Science 2017-12-21 Cristina David , Pascal Kesseli , Daniel Kroening

Forking is a common practice for developers when building upon on already existing projects. These forks create variants, which have a common code base but then evolve the code in different directions, which is specific to that forked…

Software Engineering · Computer Science 2022-08-09 Daigo Imamura , Takashi Ishio , Raula Gaikovina Kula , Kenichi Matsumoto

Test smells arise from poor design practices and insufficient domain knowledge, which can lower the quality of test code and make it harder to maintain and update. Manually refactoring test smells is time-consuming and error-prone,…

Software Engineering · Computer Science 2025-02-12 Yi Gao , Xing Hu , Xiaohu Yang , Xin Xia

Context. Software reusability mechanisms, like inheritance and delegation in Object-Oriented programming, are widely recognized as key instruments of software design. These are used to reduce the risks of source code being affected by…

Software Engineering · Computer Science 2022-08-17 Giammaria Giordano , Gerardo Festa , Gemma Catolino , Fabio Palomba , Filomena Ferrucci , Carmine Gravino

Developers sometimes mix behavior-preserving modifications, such as refactorings, with behavior-altering modifications, such as feature additions. Several approaches have been proposed to support understanding such modifications by…

Software Engineering · Computer Science 2025-08-19 Kota Someya , Lei Chen , Michael J. Decker , Shinpei Hayashi

Developers often change types of program elements. Such refactoring often involves updating not only the type of the element itself, but also the API of all type-dependent references in the code, thus it is tedious and time-consuming.…

Software Engineering · Computer Science 2022-05-10 Oleg Smirnov , Ameya Ketkar , Timofey Bryksin , Nikolaos Tsantalis , Danny Dig

Recent advances in coding agents have shown remarkable progress in software issue resolution. In practice, real-world issues are typically bug fixes or feature requests in which human developers naturally incorporate refactoring as part of…

Software Engineering · Computer Science 2026-05-22 Zhao Tian , Zifan Zhang , Tao Xiao , Dong Wang , Masanari Kondo , Junjie Chen , Yasutaka Kamei

Abstract syntax tree (AST) mapping algorithms are widely used to analyze changes in source code. Despite the foundational role of AST mapping algorithms, little effort has been made to evaluate the accuracy of AST mapping algorithms, i.e.,…

Software Engineering · Computer Science 2021-03-02 Yuanrui Fan , Xin Xia , David Lo , Ahmed E. Hassan , Yuan Wang , Shanping Li

Software development is inherently incremental. Nowadays, many software companies adopt an agile process and a shorter release cycle, where software needs to be delivered faster with quality assurances. On the other hand, the majority of…

Software Engineering · Computer Science 2020-07-01 Ashwin Kallingal Joshy , Wei Le

Distributed systems adopt weak consistency to ensure high availability and low latency, but state convergence is hard to guarantee due to conflicts. Experts carefully design replicated data types (RDTs) that resemble sequential data types…

Programming Languages · Computer Science 2024-12-09 Kevin De Porre , Carla Ferreira , Elisa Gonzalez Boix

The goal of decompilation is to convert compiled low-level code (e.g., assembly code) back into high-level programming languages, enabling analysis in scenarios where source code is unavailable. This task supports various reverse…

Software Engineering · Computer Science 2025-02-19 Yunlong Feng , Bohan Li , Xiaoming Shi , Qingfu Zhu , Wanxiang Che