English
Related papers

Related papers: Behind the Scenes: On the Relationship Between Dev…

200 papers

Complex software can be hard to read, adapt, and maintain. Refactoring it can create cleaner and self-explanatory code. Refactoring tools try to guide developers towards better code, with more quality. However, most of them take too long to…

Software Engineering · Computer Science 2023-07-21 Sara Fernandes , Ademar Aguiar , André Restivo

In this paper, we present a tertiary systematic literature review of previous surveys, secondary systematic literature reviews, and systematic mappings. We identify the main observations (what we know) and challenges (what we do not know)…

Software Engineering · Computer Science 2020-08-11 Guilherme Lacerda , Fabio Petrillo , Marcelo Pimenta , Yann Gael Gueheneuc

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

Refactoring is a critical process in software development, aiming at improving the internal structure of code while preserving its external behavior. Refactoring engines are integral components of modern Integrated Development Environments…

Software Engineering · Computer Science 2024-09-24 Haibo Wang , Zhuolin Xu , Huaien Zhang , Nikolaos Tsantalis , Shin Hwei Tan

Due to the growing complexity of software systems, there has been a dramatic increase and industry demand for tools and techniques on software refactoring in the last ten years, defined traditionally as a set of program transformations…

Software Engineering · Computer Science 2020-07-07 Chaima Abid , Vahid Alizadeh , Marouane Kessentini , Thiago do Nascimento Ferreira , Danny Dig

Context : Software comprehension and maintenance activities, such as refactoring, are said to be negatively impacted by software complexity. The methods used to measure software product and processes complexity have been thoroughly debated…

Software Engineering · Computer Science 2023-03-07 João Caldeira , Fernando Brito e Abreu , Jorge Cardoso , José Reis

Catalogs of refactoring have key importance in software maintenance and evolution, since developers rely on such documents to understand and perform refactoring operations. Furthermore, these catalogs constitute a reference guide for…

Software Engineering · Computer Science 2022-11-17 Aline Brito , Andre Hora , Marco Tulio Valente

Commit messages are the atomic level of software documentation. They provide a natural language description of the code change and its purpose. Messages are critical for software maintenance and program comprehension. Unlike documenting…

Software Engineering · Computer Science 2021-12-06 Eman Abdullah AlOmar , Jiaqian Liu , Kenneth Addo , Mohamed Wiem Mkaouer , Christian Newman , Ali Ouni , Zhe Yu

Code refactoring is widely recognized as an essential software engineering practice to improve the understandability and maintainability of the source code. The Extract Method refactoring is considered as "Swiss army knife" of refactorings,…

Software Engineering · Computer Science 2023-12-21 Eman Abdullah AlOmar , Mohamed Wiem Mkaouer , Ali Ouni

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…

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

Large Language Models (LLMs), like ChatGPT, have gained widespread popularity and usage in various software engineering tasks, including refactoring, testing, code review, and program comprehension. Despite recent studies delving into…

Software Engineering · Computer Science 2024-02-12 Eman Abdullah AlOmar , Anushkrishna Venkatakrishnan , Mohamed Wiem Mkaouer , Christian D. Newman , Ali Ouni

Despite the availability of refactoring as a feature in popular IDEs, recent studies revealed that developers are reluctant to use them, and still prefer the manual refactoring of their code. At JetBrains, our goal is to fully support…

Software Engineering · Computer Science 2021-07-20 Yaroslav Golubev , Zarina Kurbatova , Eman Abdullah AlOmar , Timofey Bryksin , Mohamed Wiem Mkaouer

Knowledge about the roles developers play in a software project is crucial to understanding the project's collaborative dynamics. Developers are often classified according to the dichotomy of core and peripheral roles. Typically,…

Software Engineering · Computer Science 2016-04-05 Mitchell Joblin , Sven Apel , Claus Hunsen , Wolfgang Mauerer

Many software developers rely on open source software for developing their applications and writing their source codes. Measuring an independent project's overall productivity is still an open problem for many technology companies. In this…

Software Engineering · Computer Science 2022-03-30 Sairamvinay Vijayaraghavan , Jinxiao Song , Terry Guan , Seongwoo Choi , Sutej Kulkarni

Context: Writing Clean Code understandable by other collaborators has become crucial to enhancing collaboration and productivity. However, very little is known regarding whether developers agree with Clean Code Principles and how they apply…

Software Engineering · Computer Science 2022-08-16 Kevin Ljung , Javier Gonzalez-Huerta

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

Software development agents such as Claude Code, GitHub Copilot, Cursor Agent, Devin, and OpenAI Codex are being increasingly integrated into developer workflows. While prior work has evaluated agent capabilities for code completion and…

Software Engineering · Computer Science 2026-05-26 Lukas Ottenhof , Daniel Penner , Abram Hindle , Thibaud Lutellier

Automated batch refactoring has become a de-facto mechanism to restructure software that may have significant design flaws negatively impacting the code quality and maintainability. Although automated batch refactoring techniques are known…

Software Engineering · Computer Science 2023-06-29 Asif Imran , Tevfik Kosar , Jaroslaw Zola , Muhammed Fatih Bulut

For more than thirty years, it has been claimed that a way to improve software developers' productivity and software quality is to focus on people. The underlying assumption seems to be that "happy and satisfied software developers perform…

Software Engineering · Computer Science 2016-01-27 Daniel Graziotin