English
Related papers

Related papers: On the Documentation of Refactoring Types

200 papers

Docker, the industry standard for packaging and deploying applications, leverages Infrastructure as Code (IaC) principles to facilitate the creation of images through Dockerfiles. However, maintaining Dockerfiles presents significant…

Software Engineering · Computer Science 2025-01-27 Emna Ksontini , Meriem Mastouri , Rania Khalsi , Wael Kessentini

In this paper, we propose an assertion-based approach to capture software evolution, through the notion of commit-relevant specification. A commit-relevant specification summarises the program properties that have changed as a consequence…

Software Engineering · Computer Science 2023-01-31 Renzo Degiovanni , Facundo Molina , Agustin Nolasco , Nazareno Aguirre , Mike Papadakis

Although Extract Method is a key refactoring for improving program comprehension, refactoring tools for such purpose are often underused. To address this shortcoming, we present JExtract, a recommendation system based on structural…

Software Engineering · Computer Science 2015-06-22 Danilo Silva , Ricardo Terra , Marco Tulio Valente

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

Software documentation is essential for program comprehension, developer onboarding, code review, and long-term maintenance. Yet producing quality documentation manually is time-consuming and frequently yields incomplete or inconsistent…

Software Engineering · Computer Science 2026-04-20 Afia Farjana , Zaiyu Cheng , Antonio Mastropaolo

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

Redescription mining is a field of knowledge discovery that aims at finding different descriptions of similar subsets of instances in the data. These descriptions are represented as rules inferred from one or more disjoint sets of…

Artificial Intelligence · Computer Science 2016-12-20 Matej Mihelčić , Sašo Džeroski , Nada Lavrač , Tomislav Šmuc

Refactoring is a common software engineering practice that improves code quality without altering program behavior. Although tools like ReExtractor+, RefactoringMiner, and RefDiff have been developed to detect refactorings automatically,…

Software Engineering · Computer Science 2025-11-20 Pedro Simões , Rohit Gheyi , Rian Melo , Jonhnanthan Oliveira , Márcio Ribeiro , Wesley K. G. Assunção

In the pull-based development model, code contributions are submitted as pull requests (PRs) to undergo reviews and approval by other developers with the goal of being merged into the code base. A PR can be supported by a description, whose…

Software Engineering · Computer Science 2026-02-17 Shirin Pirouzkhah , Pavlína Wurzel Gonçalves , Alberto Bacchelli

Text matching is a fundamental technique in both information retrieval and natural language processing. Text matching tasks share the same paradigm that determines the relationship between two given texts. The relationships vary from task…

Information Retrieval · Computer Science 2022-08-23 Shicheng Xu , Liang Pang , Huawei Shen , Xueqi Cheng

As AI agents increasingly contribute to code development and maintenance, there is still limited empirical evidence on the quality and risk characteristics of their changes in real-world projects, particularly for refactoring-oriented…

Software Engineering · Computer Science 2026-05-21 Mohamed Almukhtar , Anwar Ghammam , Hua Ming

This work introduces the novel concept of kind refinement, which we develop in the context of an explicitly polymorphic ML-like language with type-level computation. Just as type refinements embed rich specifications by means of…

Programming Languages · Computer Science 2019-08-02 Luís Caires , Bernardo Toninho

Refinement types enable lightweight verification of functional programs. Algorithms for statically inferring refinement types typically work by reduction to solving systems of constrained Horn clauses extracted from typing derivations. An…

Programming Languages · Computer Science 2020-11-11 Zvonimir Pavlinovic , Yusen Su , Thomas Wies

Novice programmers often struggle to comprehend code due to vague naming, deep nesting, and poor structural organization. While explanations may offer partial support, they typically do not restructure the code itself. We propose code…

Software Engineering · Computer Science 2026-04-20 Subarna Saha , Alif Al Hasan , Fariha Tanjim Shifat , Mia Mohammad Imran

During maintenance, software developers deal with a number of software change requests. Each of those requests is generally written using natural language texts, and it involves one or more domain related concepts. A developer needs to map…

Software Engineering · Computer Science 2018-07-09 Mohammad Masudur Rahman , Chanchal K. Roy

Large Language Models (LLMs) have demonstrated impressive capabilities in creative tasks such as storytelling and E-mail generation. However, as LLMs are primarily trained on final text results rather than intermediate revisions, it might…

Computation and Language · Computer Science 2023-12-21 Lei Shu , Liangchen Luo , Jayakumar Hoskere , Yun Zhu , Yinxiao Liu , Simon Tong , Jindong Chen , Lei Meng

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

Commit messages have an important impact in software development, especially when working in large teams. Multiple developers who have a different style of writing may often be involved in the same project. For this reason, it may be…

Computation and Language · Computer Science 2021-04-12 Nicolae-Teodor Pavel , Traian Rebedea

Matching for causal inference is a well-studied problem, but standard methods fail when the units to match are text documents: the high-dimensional and rich nature of the data renders exact matching infeasible, causes propensity scores to…

Methodology · Statistics 2019-03-15 Reagan Mozer , Luke Miratrix , Aaron Russell Kaufman , L. Jason Anastasopoulos

Overfitting is a common problem in machine learning, which means the model too closely fits the training data while performing poorly in the test data. Among various methods of coping with overfitting, dropout is one of the representative…

Machine Learning · Computer Science 2022-05-17 Yangkun Li , Weizhi Ma , Chong Chen , Min Zhang , Yiqun Liu , Shaoping Ma , Yuekui Yang