English
Related papers

Related papers: How We Refactor and How We Document it? On the Use…

200 papers

Documenting the functionality of software units with code comments, e.g., Javadoc comments, is a common programmer best-practice in software engineering. This paper introduces a novel test generation technique that exploits the code-comment…

Software Engineering · Computer Science 2025-05-01 Giovanni Denaro , Luca Guglielmo

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

Large Language Models (LLMs), such as ChatGPT, have become widely popular and widely used in various software engineering tasks such as refactoring, testing, code review, and program comprehension. Although recent studies have examined the…

Software Engineering · Computer Science 2025-09-11 Eman Abdullah AlOmar , Luo Xu , Sofia Martinez , Anthony Peruma , Mohamed Wiem Mkaouer , Christian D. Newman , Ali Ouni

Code smells as symptoms of poor design and implementation choices. Many times they are the result of so called technical debt. Our study showed that the interest in code smells research is increasing. However, most of the publications are…

Software Engineering · Computer Science 2018-02-19 Peter Kokol , Milan Zorman , Grega Zlahtic , Bojan Zlahtic

Large language models (LLMs) for code editing have achieved remarkable progress, yet recent empirical studies reveal a fundamental disconnect between technical accuracy and developer productivity. Despite their strong benchmark performance,…

Software Engineering · Computer Science 2026-04-09 Chenyan Liu , Yun Lin , Jiaxin Chang , Jiawei Liu , Binhang Qi , Bo Jiang , Zhiyong Huang , Jin Song Dong

While the recently emerged Microservices architectural style is widely discussed in literature, it is difficult to find clear guidance on the process of refactoring legacy applications. The importance of the topic is underpinned by high…

Software Engineering · Computer Science 2019-01-25 Jonas Fritzsch , Justus Bogner , Alfred Zimmermann , Stefan Wagner

Test smells can reduce the developers' ability to interact with the test code. Refactoring test code offers a safe strategy to handle test smells. However, the manual refactoring activity is not a trivial process, and it is often tedious…

Software Engineering · Computer Science 2022-07-13 Railana Santana , Luana Martins , Tássio Virgínio , Larissa Soares , Heitor Costa , Ivan Machado

Software undergoes constant changes to support new requirements, address bugs, enhance performance, and ensure maintainability. Thus, developers spend a great portion of their workday trying to understand and review the code changes of…

Software Engineering · Computer Science 2024-08-26 Pouria Alikhanifard , Nikolaos Tsantalis

Refactoring is an important activity that is frequently performed in software development, and among them, Extract Method is known to be one of the most frequently performed refactorings. The existing techniques for recommending Extract…

Software Engineering · Computer Science 2021-08-31 Jinto Yamanaka , Yasuhiro Hayase , Toshiyuki Amagasa

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

Software design smells are design attributes which violate the fundamental design principles. Design smells are a key cause of design debt. Although the activities of design smell identification and measurement are predominantly considered…

Software Engineering · Computer Science 2019-10-15 Asif Imran , Tevfik Kosar

The learning and usage of an API is supported by official documentation. Like source code, API documentation is itself a software product. Several research results show that bad design in API documentation can make the reuse of API features…

Software Engineering · Computer Science 2021-02-18 Junaed Younus Khan , Md. Tawkat Islam Khondaker , Gias Uddin , Anindya Iqbal

Spreadsheets are the most popular end-user programming software, where formulae act like programs and also have smells. One well recognized common smell of spreadsheet formulae is nest-IF expressions, which have low readability and high…

Software Engineering · Computer Science 2017-12-29 Jie Zhang , Shi Han , Dan Hao , Lu Zhang , Dongmei Zhang

Context: Dependency Injection (DI) is a commonly applied mechanism to decouple classes from their dependencies in order to provide higher modularization. However, bad DI practices often lead to negative consequences, such as increasing…

Software Engineering · Computer Science 2021-10-19 Rodrigo Laigner , Diogo Mendonça , Alessandro Garcia , Marcos Kalinowski

Code review that detects and locates defects and other quality issues plays an important role in software quality control. One type of issue that may impact the quality of software is code smells. Yet, little is known about the extent to…

Software Engineering · Computer Science 2022-05-17 Xiaofeng Han , Amjed Tahir , Peng Liang , Steve Counsell , Kelly Blincoe , Bing Li , Yajing Luo

Formal verification of a software system relies on formalising the requirements to which it should adhere, which can be challenging. While formalising requirements from natural-language, we have dependencies that lead to duplication of…

Software Engineering · Computer Science 2022-02-14 Matt Luckcuck , Marie Farrell , Oisín Sheridan

Retrospective meetings play a vital role in agile development by facilitating team reflection on past work to enhance effectiveness. These meetings address various social aspects, including team dynamics, individual performance, processes,…

Software Engineering · Computer Science 2025-02-27 Carlos Dantas , Tiago Massoni , Camila Sarmento , Rayana Rocha , Danielly Gualberto

We introduce program splicing, a programming methodology that aims to automate the commonly used workflow of copying, pasting, and modifying code available online. Here, the programmer starts by writing a "draft" that mixes unfinished code,…

Programming Languages · Computer Science 2017-05-26 Yanxin Lu , Swarat Chaudhuri , Chris Jermaine , David Melski

Excessively long methods, loaded with multiple responsibilities, are challenging to understand, debug, reuse, and maintain. The solution lies in the widely recognized Extract Method refactoring. While the application of this refactoring is…

Software Engineering · Computer Science 2024-06-03 Dorin Pomian , Abhiram Bellur , Malinda Dilhara , Zarina Kurbatova , Egor Bogomolov , Andrey Sokolov , Timofey Bryksin , Danny Dig

Serializability is a well-understood concurrency control mechanism that eases reasoning about highly-concurrent database programs. Unfortunately, enforcing serializability has a high-performance cost, especially on geographically…

Programming Languages · Computer Science 2021-03-10 Kia Rahmani , Kartik Nagar , Benjamin Delaware , Suresh Jagannathan