Proceedings ArticleDOI
Investigating code smell co-occurrences using association rule learning: A replicated study
Fabio Palomba,Rocco Oliveto,Andrea De Lucia +2 more
- pp 8-13
Reads0
Chats0
TLDR
A large-scale replication of previous studies on code smell co-occurrences is provided, taking into account 13 code smell types on a dataset composed of 395 releases of 30 software systems and highlighted some expected relationships, but also shed light on co-Occurrences missed by previous research in the field.Abstract:
Previous research demonstrated how code smells (i.e., symptoms of the presence of poor design or implementation choices) threat software maintainability. Moreover, some studies showed that their interaction has a stronger negative impact on the ability of developers to comprehend and enhance the source code when compared to cases when a single code smell instance affects a code element (i.e., a class or a method). While such studies analyzed the effect of the co-presence of more smells from the developers' perspective, a little knowledge regarding which code smell types tend to co-occur in the source code is currently available. Indeed, previous papers on smell co-occurrence have been conducted on a small number of code smell types or on small datasets, thus possibly missing important relationships. To corroborate and possibly enlarge the knowledge on the phenomenon, in this paper we provide a large-scale replication of previous studies, taking into account 13 code smell types on a dataset composed of 395 releases of 30 software systems. Code smell co-occurrences have been captured by using association rule mining, an unsupervised learning technique able to discover frequent relationships in a dataset. The results highlighted some expected relationships, but also shed light on co-occurrences missed by previous research in the field.read more
Citations
More filters
A GQM-based Method and a Bayesian Approach for the Detection of Code and Design Smells
TL;DR: In this paper, a probabilistic model is proposed to detect occurrences of the Blob antipattern in code and design smells in programs, which can be calibrated using machine learning techniques to offer an improved, context-specific detection.
Journal ArticleDOI
A large-scale empirical study on the lifecycle of code smell co-occurrences
Fabio Palomba,Gabriele Bavota,Massimiliano Di Penta,Fausto Fasano,Rocco Oliveto,Andrea De Lucia +5 more
TL;DR: It is argued that more research aimed at designing co-occurrence-aware code smell detectors and refactoring approaches is needed because 59% of smelly classes are affected by more than one smell.
Journal ArticleDOI
A systematic review on the code smell effect
José Amancio M. Santos,João B. Rocha-Junior,João B. Rocha-Junior,Luciana Carla Lins Prates,Rogeres Santos do Nascimento,Mydiã Falcão Freitas,Manoel Mendonça +6 more
TL;DR: The smell concept does not support the evaluation of quality design in practice activities of software development, and there is no strong evidence correlating smells and some important software development attributes, such as effort in maintenance.
Journal ArticleDOI
Code smell detection using multi-label classification approach
TL;DR: This work proposes and investigates the use of multi-label classification (MLC) methods to detect whether the given code element is affected by multiple smells or not and found that there is a positive correlation between the two smells.
Journal ArticleDOI
Code Smells and their Collocations : A Large-scale Experiment on Open-source Systems
TL;DR: This paper identifies and empirically validate frequent collocations of 14 code smells detected in 92 Java systems, using three approaches: pairwise correlation analysis, PCA and associative rules, and found that analytical methods used to discover collocations, are complementary.
References
More filters
Journal Article
R: A language and environment for statistical computing.
TL;DR: Copyright (©) 1999–2012 R Foundation for Statistical Computing; permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and permission notice are preserved on all copies.
Book
Design Patterns: Elements of Reusable Object-Oriented Software
TL;DR: The book is an introduction to the idea of design patterns in software engineering, and a catalog of twenty-three common patterns, which most experienced OOP designers will find out they've known about patterns all along.
Proceedings ArticleDOI
Mining association rules between sets of items in large databases
TL;DR: An efficient algorithm is presented that generates all significant association rules between items in the database of customer transactions and incorporates buffer management and novel estimation and pruning techniques.
Book
Refactoring: Improving the Design of Existing Code
TL;DR: Almost every expert in Object-Oriented Development stresses the importance of iterative development, but how do you add function to the existing code base while still preserving its design integrity?
Proceedings ArticleDOI
Refactoring improving the design of existing code
TL;DR: The present document details the how, why and when to apply refactoring in computer systems that have been poorly designed, this in order to a better performance and maintenance of the constituent components.