Article
Computer Science, Software Engineering
Sarra Habchi, Naouel Moha, Romain Rouvoy
Summary: Object-oriented code smells refer to bad design and development practices seen in software systems. The emergence of mobile apps has brought about new mobile-specific code smells, which are symptoms of important performance issues. However, the removal of these code smells often occurs as a side effect of maintenance activities, with developers not always refactoring them even when aware of their presence.
JOURNAL OF SYSTEMS AND SOFTWARE
(2021)
Article
Computer Science, Artificial Intelligence
Raana Saheb-Nassagh, Mehrdad Ashtiani, Behrouz Minaei-Bidgoli
Summary: This paper introduces a framework based on probabilistic graphical models for identifying and refactoring anti-patterns. The approach involves training a Bayesian network to determine the presence of anti-patterns based on the characteristics of neighboring classes. Evaluation results demonstrate the model's strong performance in identifying anti-patterns and introducing effective refactoring methods.
APPLIED SOFT COMPUTING
(2022)
Article
Computer Science, Software Engineering
Americo Rio, Fernando Brito e Abreu
Summary: This paper presents a longitudinal study on the evolution and survival of code smells (CS) in PHP web apps. The study reveals that the density trend of CS is mostly stable and correlates with the developer's numbers. CS live an average of about 37% of the life of the applications, and around 61% of CS introduced are removed. Moreover, anomalies in the evolution of CS were found, indicating the need to avoid code smells and decrease their density trend.
JOURNAL OF SYSTEMS AND SOFTWARE
(2023)
Article
Automation & Control Systems
Bruno Sotto-Mayor, Amir Elmishali, Meir Kalech, Rui Abreu
Summary: This paper studies the performance of defect prediction models and compares models using Design code smells, Traditional smells, and a combination of both. The results show that models trained with both Design code smells and Traditional smells performed the best.
ENGINEERING APPLICATIONS OF ARTIFICIAL INTELLIGENCE
(2022)
Article
Computer Science, Software Engineering
Mouna Abidi, Md Saidur Rahman, Moses Openja, Foutse Khomh
Summary: Modern applications are developed using components written in different programming languages and technologies, which presents challenges in terms of development and maintenance due to the increased number of languages. Design smells can impact software quality and are associated with a higher risk of future bugs.
ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY
(2021)
Article
Computer Science, Software Engineering
Lucas Francisco da Matta Vegi, Marco Tulio Valente
Summary: This paper studies the internal quality issues of systems implemented with Elixir language and discovered and documented new code smells for this language through interaction with the Elixir developer community and mining of GitHub repositories. The results propose a catalog of 35 code smells, 23 of which are specific to Elixir and 12 are traditional code smells. The relevance and prevalence of each smell in the catalog were validated through a survey with 181 experienced Elixir developers.
EMPIRICAL SOFTWARE ENGINEERING
(2023)
Article
Computer Science, Information Systems
Danyllo Albuquerque, Everton Guimaraes, Mirko Perkusich, Thiago Rique, Felipe Cunha, Hyggo Almeida, Angelo Perkusich
Summary: Code smells are structures in a program that indicate deeper maintainability problems. Non-Interactive Detection (NID) techniques support code smells detection in later program versions, but lack the ability to interact with developers. Interactive Detection (ID) techniques, on the other hand, allow for immediate detection of code smells, leading to more effective refactoring actions and improved code quality.
Article
Computer Science, Information Systems
Aakanshi Gupta, Rashmi Gandhi, Nishtha Jatana, Divya Jatain, Sandeep Kumar Panda, Janjhyam Venkata Naga Ramesh
Summary: This study investigates five code smells diffused in Python software, finding that cognitive complexity is the most severe and the remaining four are in the moderate range. The J48 algorithm was the accurate multinomial classifier for classifying the severity of code smells with 92.98% accuracy.
Review
Computer Science, Theory & Methods
Morteza Zakeri-Nasrabadi, Saeed Parsa, Ehsan Esmaili, Fabio Palomba
Summary: The accuracy of code smell-detecting tools varies depending on the dataset used for evaluation. The adequacy of a dataset highly depends on relevant properties such as size, severity level, project types, and the number of each type of smell. Existing datasets often suffer from imbalanced samples, lack of severity level support, and restriction to Java language.
ACM COMPUTING SURVEYS
(2023)
Article
Computer Science, Artificial Intelligence
Corinna Coupette, Dirk Hartung, Janis Beckedorf, Maximilian Bother, Daniel Martin Katz
Summary: Building on the concept of code smells in computer science, this study explores law smells in legal texts that can affect comprehension and maintainability. By introducing five intuitive law smells and developing a comprehensive taxonomy, the research classifies law smells based on detection, their relevance to law, and identification methods. The effectiveness of text-based and graph-based approaches in detecting law smells is validated using the United States Code.
ARTIFICIAL INTELLIGENCE AND LAW
(2023)
Article
Computer Science, Information Systems
Diego Firmenich, Sergio Firmenich, Gustavo Rossi, Manuel Wimmer, Irene Garrigos, Cesar Gonzalez-Mora
Summary: Web Augmentation allows end-users to modify web interfaces with browser plugins after loading, which requires maintenance attention due to dependency on third-party resources. A participatory approach for end-users without programming skills to participate in maintenance is presented. Analysis of over eight thousand augmenters and an experiment with 48 participants were conducted to validate the approach.
INFORMATION AND SOFTWARE TECHNOLOGY
(2022)
Article
Computer Science, Information Systems
Ana Carla Bibiano, Anderson Uchoa, Wesley K. G. Assuncao, Daniel Tenorio, Thelma E. Colanzi, Silvia Regina Vergilio, Alessandro Garcia
Summary: Code refactoring aims to improve software quality by transforming the code, and composite refactoring consists of two or more interrelated refactorings. This study analyzes the technical literature on composite refactoring and establishes a conceptual framework for its representation models, characteristics, and effects.
INFORMATION AND SOFTWARE TECHNOLOGY
(2023)
Article
Computer Science, Software Engineering
Renaud Rwemalika, Sarra Habchi, Mike Papadakis, Yves Le Traon, Marie-Claude Brasseur
Summary: Test smells are bad development practices that indicate poor design and implementation choices in software tests. This study examines test smells in System User Interactive Tests (SUIT) and identifies 35 SUIT-specific smells through a literature review. The results show that these smells appear in both industrial and open-source projects, but are addressed differently. The study also finds that smells originating from multiple code locations are more common and smell-removing actions are not frequently performed.
EMPIRICAL SOFTWARE ENGINEERING
(2023)
Article
Computer Science, Artificial Intelligence
Aleksandar Kovacevic, Jelena Slivka, Dragan Vidakovic, Katarina-Glorija Grujic, Nikola Luburic, Simona Prokic, Goran Sladic
Summary: This paper compares the performance of machine learning-based and metric-based code smell detection methods, and evaluates the effectiveness of different source code representations. The study also explores the transferability of knowledge mined from code understanding models to code smell detection and provides a systematic evaluation of code smell detection approaches.
EXPERT SYSTEMS WITH APPLICATIONS
(2022)
Article
Computer Science, Software Engineering
Eric S. Liu, Dylan A. Lukes, William G. Griswold
Summary: Due to the exploratory nature of computational notebook development, notebook authors often face substantial technical debt but lack proper tools for notebook maintenance. In this study, we investigated the refactoring of public Jupyter notebooks to gain a better understanding of the unique ecosystem of notebook development. We found that notebook authors do refactor, with a preference for basic classic refactorings and those involving the notebook cell construct. These findings highlight the intrinsic nature of refactoring in notebook development.
ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY
(2023)
Article
Computer Science, Software Engineering
Kathryn T. Stolee, Sebastian Elbaum, Matthew B. Dwyer
JOURNAL OF SYSTEMS AND SOFTWARE
(2016)
Article
Computer Science, Information Systems
Kathryn T. Stolee, Sebastian Elbaum, Anita Sarma
INFORMATION AND SOFTWARE TECHNOLOGY
(2013)
Article
Computer Science, Software Engineering
Afsoon Afzal, Manish Motwani, Kathryn T. Stolee, Yuriy Brun, Claire Le Goues
Summary: Automated program repair has the potential to reduce software maintenance cost and effort, but often leads to low-quality patches. By replacing faulty code regions with semantically similar code at a higher granularity level, better patch quality can be achieved. Techniques like SOSRepair show promise in effectively repairing real-world defects in systems.
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
(2021)
Article
Computer Science, Software Engineering
Suvodeep Majumder, Joymallya Chakraborty, Gina R. Bai, Kathryn T. Stolee, Tim Menzies
Summary: Testing machine learning software for ethical bias is a pressing current concern. Research shows that many fairness metrics effectively measure the same thing. Through experiments, it is found that these metrics can be grouped and each group may predict different things. Therefore, to simplify the fairness testing problem, it is recommended to test one metric per group based on the desired fairness type.
ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY
(2023)
Proceedings Paper
Computer Science, Software Engineering
George Mathew, Kathryn T. Stolee
Summary: Code-to-Code Search Across Languages (COSAL) is a cross-language technique that combines static and dynamic analyses to identify similar code without the need for a machine learning model. It ranks code snippets using non-dominated sorting based on code token, structural, and behavioral similarity, outperforming current within-language and cross-language code-to-code search tools in terms of precision and recall. COSAL shows promise for practical, multi-language code search on large open-source repositories.
PROCEEDINGS OF THE 29TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (ESEC/FSE '21)
(2021)
Proceedings Paper
Computer Science, Software Engineering
Devarshi Singh, Varun Ramachandra Sekar, Kathryn T. Stolee, Brittany Johnson
2017 IEEE SYMPOSIUM ON VISUAL LANGUAGES AND HUMAN-CENTRIC COMPUTING (VL/HCC)
(2017)
Proceedings Paper
Computer Science, Software Engineering
David Shriver, Sebastian Elbaum, Kathryn T. Stolee
2017 IEEE/ACM 39TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: NEW IDEAS AND EMERGING TECHNOLOGIES RESULTS TRACK (ICSE-NIER)
(2017)
Proceedings Paper
Computer Science, Software Engineering
Carl Chapman, Peipei Wang, Kathryn T. Stolee
PROCEEDINGS OF THE 2017 32ND IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE'17)
(2017)
Proceedings Paper
Computer Science, Software Engineering
Caitlin Sadowski, Kathryn T. Stolee, Sebastian Elbaum
2015 10TH JOINT MEETING OF THE EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND THE ACM SIGSOFT SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (ESEC/FSE 2015) PROCEEDINGS
(2015)
Proceedings Paper
Computer Science, Software Engineering
Kathryn T. Stolee, James Saylor, Trevor Lund
SECOND INTERNATIONAL WORKSHOP ON CROWDSOURCING IN SOFTWARE ENGINEERING CSI-SE 2015
(2015)
Proceedings Paper
Computer Science, Software Engineering
Kathryn T. Stolee, Sebastian Elbaum
2011 33RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE)
(2011)
Proceedings Paper
Computer Science, Theory & Methods
Kathryn T. Stolee, Teale Fristoe
SIGCSE 11: PROCEEDINGS OF THE 42ND ACM TECHNICAL SYMPOSIUM ON COMPUTER SCIENCE EDUCATION
(2011)