Code smells indicate possible flaws in software design, that could negatively affect system's maintainability. Interactions among smells located in the same classes (i.e., collocated smells) have even more detrimental effect on quality. Extracted frequent patterns of collocated smells could help to understand practical consequences of collocations. In this paper we identify and empirically validate frequent collocations of 14 code smells detected in 92 Java systems, using three approaches: pairwise correlation analysis, PCA and associative rules. To cross-validate the results, we used up to 6 detectors for each smell. Additionally, we examine and compare techniques used to extract the relationships. The contribution is three-fold: (1) we identify and empirically validate relationships among the examined code smells on a large dataset that we made publicly available, (2) we discuss how the choice of code smell detectors affects results, and (3) we analyze the impact of software domain on existence of the smell collocations. Additionally, we found that analytical methods we used to discover collocations, are complementary. Smells collocations display recurring patterns that could help prioritizing the classes affected by code smells to be refactored and developing or enhancing detectors exploiting information about collocations. They can also help the developers focusing on classes deserving more maintenance effort.

Walter, B., Arcelli Fontana, F., Ferme, V. (2018). Code smells and their collocations: A large-scale experiment on open-source systems. THE JOURNAL OF SYSTEMS AND SOFTWARE, 144, 1-21 [10.1016/j.jss.2018.05.057].

Code smells and their collocations: A large-scale experiment on open-source systems

Arcelli Fontana, F
Membro del Collaboration Group
;
2018

Abstract

Code smells indicate possible flaws in software design, that could negatively affect system's maintainability. Interactions among smells located in the same classes (i.e., collocated smells) have even more detrimental effect on quality. Extracted frequent patterns of collocated smells could help to understand practical consequences of collocations. In this paper we identify and empirically validate frequent collocations of 14 code smells detected in 92 Java systems, using three approaches: pairwise correlation analysis, PCA and associative rules. To cross-validate the results, we used up to 6 detectors for each smell. Additionally, we examine and compare techniques used to extract the relationships. The contribution is three-fold: (1) we identify and empirically validate relationships among the examined code smells on a large dataset that we made publicly available, (2) we discuss how the choice of code smell detectors affects results, and (3) we analyze the impact of software domain on existence of the smell collocations. Additionally, we found that analytical methods we used to discover collocations, are complementary. Smells collocations display recurring patterns that could help prioritizing the classes affected by code smells to be refactored and developing or enhancing detectors exploiting information about collocations. They can also help the developers focusing on classes deserving more maintenance effort.
Articolo in rivista - Articolo scientifico
Code smell detectors; Code smells; Collocated smells; Inter-smell relationships; Smell interaction; Source code quality;
Code smell detectors; Code smells; Collocated smells; Inter-smell relationships; Smell interaction; Source code quality; Software; Information Systems; Hardware and Architecture
English
2018
144
1
21
none
Walter, B., Arcelli Fontana, F., Ferme, V. (2018). Code smells and their collocations: A large-scale experiment on open-source systems. THE JOURNAL OF SYSTEMS AND SOFTWARE, 144, 1-21 [10.1016/j.jss.2018.05.057].
File in questo prodotto:
Non ci sono file associati a questo prodotto.

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10281/219069
Citazioni
  • Scopus 22
  • ???jsp.display-item.citation.isi??? 18
Social impact