scispace - formally typeset
Proceedings ArticleDOI

Detecting code smells using machine learning techniques: Are we there yet?

TLDR
The results reveal that with this configuration the machine learning techniques reveal critical limitations in the state of the art which deserve further research.
Abstract
Code smells are symptoms of poor design and implementation choices weighing heavily on the quality of produced source code. During the last decades several code smell detection tools have been proposed. However, the literature shows that the results of these tools can be subjective and are intrinsically tied to the nature and approach of the detection. In a recent work the use of Machine-Learning (ML) techniques for code smell detection has been proposed, possibly solving the issue of tool subjectivity giving to a learner the ability to discern between smelly and non-smelly source code elements. While this work opened a new perspective for code smell detection, it only considered the case where instances affected by a single type smell are contained in each dataset used to train and test the machine learners. In this work we replicate the study with a different dataset configuration containing instances of more than one type of smell. The results reveal that with this configuration the machine learning techniques reveal critical limitations in the state of the art which deserve further research.

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

Machine learning techniques for code smell detection: A systematic literature review and meta-analysis

TL;DR: There is still room for the improvement of machine learning techniques in the context of code smell detection and it is argued that JRip and Random Forest are the most effective classifiers in terms of performance.
Journal ArticleDOI

Beyond Technical Aspects: How Do Community Smells Influence the Intensity of Code Smells?

TL;DR: A mixed-methods empirical study of 117 releases from 9 open-source systems finds that community-related factors contribute to the intensity of code smells, supporting the joint use of community and code smells detection as a mechanism for the joint management of technical and social problems around software development communities.
Proceedings ArticleDOI

Comparing heuristic and machine learning approaches for metric-based code smell detection

TL;DR: A large-scale study to empirically compare the performance of heuristic-based and machine-learning-based techniques for metric-based code smell detection, and considers five code smell types and compares machine learning models with DECOR, a state-of-the-art heuristics-based approach.
Proceedings ArticleDOI

Deep learning based feature envy detection

TL;DR: A deep learning based novel approach to detecting feature envy, one of the most common code smells, and an automatic approach to generating labeled training data for the neural network based classifier, which does not require any human intervention are proposed.
References
More filters
Journal ArticleDOI

How developers perceive smells in source code: A replicated study

TL;DR: The results confirm the initial hypotheses that code smells are perceived as more critical in theory but not as critical in practice and show that developers are very concerned about code smells in theory, nearly always considering them as harmful or very harmful.
Proceedings ArticleDOI

An exploratory study on the relationship between changes and refactoring

TL;DR: A quantitative investigation on the relationship between different types of code changes and 28 different refactoring types coming from 3 open source projects showed that developers tend to apply a higher number ofRefactoring operations aimed at improving maintainability and comprehensibility of the source code when fixing bugs.
Journal ArticleDOI

Code-Smell Detection as a Bilevel Problem

TL;DR: The statistical analysis of the experiments over 31 runs on nine open-source systems and one industrial project shows that seven types of code smells were detected with an average of more than 86% in terms of precision and recall, which confirms the outperformance of the bilevel proposal compared to state-of-art code-smell detection techniques.
Journal ArticleDOI

Dynamic Selection of Classifiers in Bug Prediction: An Adaptive Method

TL;DR: An adaptive method, named ASCI (Adaptive Selection of Classifiers in bug prediction), able to dynamically select among a set of machine learning classifiers the one which better predicts the bug-proneness of a class based on its characteristics is proposed.
Proceedings ArticleDOI

Antipattern and Code Smell False Positives: Preliminary Conceptualization and Classification

TL;DR: This work proposes a preliminary classification of such false positives with the aim of facilitating a better understanding of the effects of anti-patterns and code smells in practice, and hopes that the development and further refinement of such a classification can support researchers and tool vendors in their endeavour to develop more pragmatic, context-relevant detection and analysis tools for anti- patterns.
Related Papers (5)