English
Related papers

Related papers: Code smells: A Synthetic Narrative Review

200 papers

\underline{Context:} Logging is a fundamental yet complex practice in software engineering, essential for monitoring, debugging, and auditing software systems. With the increasing integration of machine learning (ML) components into…

Software Engineering · Computer Science 2026-01-12 Patrick Loic Foalem , Leuson Da Silva , Foutse Khomh , Ettore Merlo , Heng Li

Background: Defect prediction in software can be highly beneficial for development projects, when prediction is highly effective and defect-prone areas are predicted correctly. One of the key elements to gain effective software defect…

Software Engineering · Computer Science 2017-03-21 Jarosław Hryszko , Lech Madeyski , Marta Dąbrowska , Piotr Konopka

Artificial Intelligence (AI) and Machine Learning (ML) are pervasive in the current computer science landscape. Yet, there still exists a lack of software engineering experience and best practices in this field. One such best practice,…

Software Engineering · Computer Science 2021-03-09 Bart van Oort , Luís Cruz , Maurício Aniche , Arie van Deursen

Logging plays a central role in ensuring reproducibility, observability, and reliability in machine learning (ML) systems. While logging is generally considered a good engineering practice, poorly designed logging can negatively affect…

Software Engineering · Computer Science 2026-03-26 Patrick Loic Foalem , Leuson Da Silva , Foutse Khomh , Heng Li , Ettore Merlo

Similarly to production code, code smells also occur in test code, where they are called test smells. Test smells have a detrimental effect not only on test code but also on the production code that is being tested. To date, the majority of…

Software Engineering · Computer Science 2021-08-11 Tongjie Wang , Yaroslav Golubev , Oleg Smirnov , Jiawei Li , Timofey Bryksin , Iftekhar Ahmed

Developing test code may be a time-consuming task that usually requires much effort and cost, especially when it is done manually. Besides, during this process, developers and testers are likely to adopt bad design choices, which may lead…

Software Engineering · Computer Science 2020-03-13 Nildo Silva Junior , Larissa Rocha , Luana Almeida Martins , Ivan Machado

Context: Code smells are considered symptoms of poor design, leading to future problems, such as reduced maintainability. Except for anecdotal cases (e. g. code dropout), a code smell survives until it gets explicitly refactored or removed.…

Software Engineering · Computer Science 2025-11-06 Américo Rio , Fernando Brito e Abreu

Context: Software specifications are usually written in natural language and may suffer from imprecision, ambiguity, and other quality issues, called thereafter, requirement smells. Requirement smells can hinder the development of a project…

Software Engineering · Computer Science 2024-04-18 Emanuele Gentili , Davide Falessi

Large Language Models (LLMs) have shown significant potential in automating software engineering tasks, particularly in code generation. However, current evaluation benchmarks, which primarily focus on accuracy, fall short in assessing the…

Software Engineering · Computer Science 2025-01-22 Alejandro Velasco , Daniel Rodriguez-Cardenas , Luftar Rahman Alif , David N. Palacio , Denys Poshyvanyk

Context: Large Language Models (LLMs) are increasingly being used to generate program code. Much research has been reported on the functional correctness of generated code, but there is far less on code quality. Objectives: In this study,…

Software Engineering · Computer Science 2025-10-06 Debalina Ghosh Paul , Hong Zhu , Ian Bayley

The aims of this paper are: 1) to identify "worst smells", i.e., bad smells that never have a good reason to exist, 2) to determine the frequency, change-proneness, and severity associated with worst smells, and 3) to identify the "worst…

Software Engineering · Computer Science 2021-03-18 Davide Falessi , Rick Kazman

During software development, poor design and implementation choices can detrimentally impact software maintainability. Design smells, recurring patterns of poorly designed fragments, signify these issues. Role-stereotypes denote the generic…

Software Engineering · Computer Science 2024-06-28 Daniel Ogenrwot , Joyce Nakatumba-Nabende , John Businge , Michel R. V. Chaudron

Bad smells have been defined to describe potential problems in code, possibly pointing out refactoring opportunities. Several empirical studies have highlighted that smells have a negative impact on comprehension and maintainability.…

Software Engineering · Computer Science 2021-07-21 Elder Vicente de Paulo Sobrinho , Marcelo de Almeida Maia

Unit testing is an essential component of the software development life-cycle. A developer could easily and quickly catch and fix software faults introduced in the source code by creating and running unit tests. Despite their importance,…

Software Engineering · Computer Science 2021-08-02 Denivan Campos , Larissa Rocha , Ivan Machado

JavaScript has been consistently among the most popular programming languages in the past decade. However, its dynamic, weakly-typed, and asynchronous nature can make it challenging to write maintainable code for developers without in-depth…

Cryptography and Security · Computer Science 2024-12-02 Vikas Kambhampati , Nehaz Hussain Mohammed , Amin Milani Fard

Context. Code smells, which are recurring anomalies in design or style, have been extensively researched in professional code. However, their significance in block-based projects created by novices is still largely unknown. Block-based…

Software Engineering · Computer Science 2025-07-24 Ricardo Hidalgo Aragón , Jesús M. González-Barahona , Gregorio Robles

Code smells are seen as major source of technical debt and, as such, should be detected and removed. However, researchers argue that the subjectiveness of the code smells detection process is a major hindrance to mitigate the problem of…

Software Engineering · Computer Science 2023-03-07 José Pereira dos Reis , Fernando Brito e Abreu , Glauco de Figueiredo Carneiro

Technical debt occurs in many different forms across software artifacts. One such form is connected to software architectures where debt emerges in the form of structural anti-patterns across architecture elements, namely, architecture…

Software Engineering · Computer Science 2023-04-03 Damian Andrew Tamburri , Francesca Arcelli Fontana , Riccardo Roveda , Valentina Lenarduzzi

Software systems naturally evolve, and this evolution often brings design problems that cause system degradation. Architectural smells are typical symptoms of such problems, and several of these smells are related to undesired dependencies…

Software Engineering · Computer Science 2018-08-21 J. Andrés Díaz-Pace , Antonela Tommasel , Daniela Godoy

Code smell is a great challenge in software refactoring, which indicates latent design or implementation flaws that may degrade the software maintainability and evolution. Over the past of decades, the research on code smell has received…

Software Engineering · Computer Science 2026-04-21 Hanyu Zhang , Tomoji Kishi