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

被引:23
|
作者
Walter, Bartosz [1 ]
Fontana, Francesca Arcelli [2 ]
Ferme, Vincenzo [3 ]
机构
[1] Poznan Univ Tech, Fac Comp, Poznan, Poland
[2] Univ Milano Bicocca, Dept Informat Syst & Commun, Milan, Italy
[3] USI Lugano, Fac Informat, Software Inst, Lugano, Switzerland
关键词
Code smells; Inter-smell relationships; Smell interaction; Collocated smells; Code smell detectors; Source code quality; BAD SMELLS; PROBABILITY;
D O I
10.1016/j.jss.2018.05.057
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:1 / 21
页数:21
相关论文
共 50 条
  • [1] Sourcerer: An infrastructure for large-scale collection and analysis of open-source code
    Bajracharya, Sushi
    Ossher, Joel
    Lopes, Cristina
    SCIENCE OF COMPUTER PROGRAMMING, 2014, 79 : 241 - 259
  • [2] A large-scale study of architectural evolution in open-source software systems
    Behnamghader, Pooyan
    Duc Minh Le
    Garcia, Joshua
    Link, Daniel
    Shahbazian, Arman
    Medvidovic, Nenad
    EMPIRICAL SOFTWARE ENGINEERING, 2017, 22 (03) : 1146 - 1193
  • [3] A large-scale study of architectural evolution in open-source software systems
    Pooyan Behnamghader
    Duc Minh Le
    Joshua Garcia
    Daniel Link
    Arman Shahbazian
    Nenad Medvidovic
    Empirical Software Engineering, 2017, 22 : 1146 - 1193
  • [4] SGL: A domain-specific language for large-scale analysis of open-source code
    Foo, Darius
    Yi, Ang Ming
    Yeo, Jason
    Sharma, Asankhaya
    2018 IEEE CYBERSECURITY DEVELOPMENT CONFERENCE (SECDEV 2018), 2018, : 61 - 68
  • [5] House of Cards: Code Smells in Open-source C# Repositories
    Sharma, Tushar
    Fragkoulis, Marios
    Spinellis, Diomidis
    11TH ACM/IEEE INTERNATIONAL SYMPOSIUM ON EMPIRICAL SOFTWARE ENGINEERING AND MEASUREMENT (ESEM 2017), 2017, : 424 - 429
  • [6] MapQuant: Open-source software for large-scale protein quantification
    Leptos, KC
    Sarracino, DA
    Jaffe, JD
    Krastins, B
    Church, GM
    PROTEOMICS, 2006, 6 (06) : 1770 - 1782
  • [7] A Large-Scale Open-Source Acoustic Simulator for Speaker Recognition
    Ferras, Marc
    Madikeri, Srikanth
    Motlicek, Petr
    Dey, Subhadeep
    Bourlard, Herve
    IEEE SIGNAL PROCESSING LETTERS, 2016, 23 (04) : 527 - 531
  • [8] Interpreting Large-Scale Attacks Against Open-Source Medical Systems Using eXplainable AI
    Lu, Wei
    COMPLEX, INTELLIGENT AND SOFTWARE INTENSIVE SYSTEMS, CISIS-2024, 2024, 87 : 60 - 71
  • [9] Comparison of Numerical Methods and Open-Source Libraries for Eigenvalue Analysis of Large-Scale Power Systems
    Tzounas, Georgios
    Dassios, Ioannis
    Liu, Muyang
    Milano, Federico
    APPLIED SCIENCES-BASEL, 2020, 10 (21): : 1 - 27
  • [10] Evaluating Maintainability Prejudices with a Large-Scale Study of Open-Source Projects
    Roehm, Tobias
    Veihelmann, Daniel
    Wagner, Stefan
    Juergens, Elmar
    SOFTWARE QUALITY: THE COMPLEXITY AND CHALLENGES OF SOFTWARE ENGINEERING AND SOFTWARE QUALITY IN THE CLOUD, 2019, 338 : 151 - 171