scispace - formally typeset
Proceedings ArticleDOI

Investigating code smell co-occurrences using association rule learning: A replicated study

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

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

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.

R Core Team
- 01 Jan 2014 - 
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.
Related Papers (5)