House of Cards: Code Smells in Open-source C# Repositories

被引:16
|
作者
Sharma, Tushar [1 ]
Fragkoulis, Marios [1 ]
Spinellis, Diomidis [1 ]
机构
[1] Athens Univ Econ & Business, Dept Management Sci & Technol, Athens, Greece
关键词
Code smells; Implementation smells; Design smells; Code quality; Maintainability; C#; BAD SMELLS; IMPACT;
D O I
10.1109/ESEM.2017.57
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Background: Code smells are indicators of quality problems that make a software hard to maintain and evolve. Given the importance of smells in the source code's maintainability, many studies have explored the characteristics of smells and analyzed their effects on the software's quality. Aim: We aim to investigate fundamental characteristics of code smells through an empirical study on frequently occurring smells that examines inter-category and intra-category correlation between design and implementation smells. Method: The study mines 19 design smells and 11 implementation smells in 1988 C# repositories containing more than 49 million lines of code. The mined data are statistically analyzed using methods such as Spearman's correlation and presented through hexbin and scatter plots. Results: We find that unutilized abstraction and magic number smells are the most frequently occurring smells in C# code. Our results also show that implementation and design smells exhibit strong inter-category correlation. The results of co-occurrence analysis imply that whenever unutilized abstraction or magic number smells are found, it is very likely to find other smells from the same smell category in the project. Conclusions: Our experiment shows high average smell density (1 4 : 7 and 5 5 : 8 for design and implementation smells respectively) for open source C# programs. Such high smell densities turn a software system into a house of cards reflecting the fragility introduced in the system. Our study advocates greater awareness of smells and the adoption of regular refactoring within the developer community to avoid turning software into a house of cards.
引用
收藏
页码:424 / 429
页数:6
相关论文
共 50 条
  • [41] On the Nature of Code Cloning in Open-Source Java']Java Projects
    Golubev, Yaroslav
    Bryksin, Timofey
    2021 IEEE 15TH INTERNATIONAL WORKSHOP ON SOFTWARE CLONES, IWSC 2021, 2021, : 22 - 28
  • [42] The Open-Source TEXPLORE Code Release for Reinforcement Learning on Robots
    Hester, Todd
    Stone, Peter
    ROBOCUP 2013: ROBOT WORLD CUP XVII, 2014, 8371 : 536 - 543
  • [43] Po River Morphodynamics Modelled with the Open-source Code iRIC
    Nones, Michael
    Pugliese, Alessio
    Domeneghetti, Alessio
    Guerrero, Massimo
    FREE SURFACE FLOWS AND TRANSPORT PROCESSES, 2018, : 335 - 346
  • [44] Open-Source MATLAB Code for Hotspot Identification and Feeder Generation
    William E. Warriner
    Charles A. Monroe
    International Journal of Metalcasting, 2019, 13 : 793 - 816
  • [45] OpenIEC: an open-source code for interfacial energy calculation in alloys
    Yang, Shenglan
    Zhong, Jing
    Wang, Jiong
    Zhang, Lijun
    Kaptay, George
    JOURNAL OF MATERIALS SCIENCE, 2019, 54 (14) : 10297 - 10311
  • [46] EIGER™:: An open-source frequency-domain electromagnetics code
    Johnson, William A.
    Basilio, Lorena I.
    Kotulski, Joseph D.
    Jorgenson, Roy E.
    Warne, Larry K.
    Coats, Rebecca S.
    Wilton, Donald R.
    Champagne, Nathan J.
    Capolino, Filippo
    Grant, J. Brian
    Khayat, Michael A.
    2007 IEEE ANTENNAS AND PROPAGATION SOCIETY INTERNATIONAL SYMPOSIUM, VOLS 1-12, 2007, : 3065 - +
  • [47] CloudScent: A Model for Code Smell Analysis in Open-Source Cloud
    Shah, Raj Narendra
    Mohamed, Sameer Ahmed
    Imran, Asif
    Kosar, Tevfik
    2023 IEEE INTERNATIONAL CONFERENCE ON CLOUD COMPUTING TECHNOLOGY AND SCIENCE, CLOUDCOM 2023, 2023, : 69 - 75
  • [48] An open-source code to generate carbon nanotube/graphene junctions
    Zhang, Hao
    Ren, Zhencheng
    Ye, Chang
    Dong, Yalin
    COMPUTATIONAL MATERIALS SCIENCE, 2018, 146 : 143 - 149
  • [49] Building BESSER: An Open-Source Low-Code Platform
    Alfonso, Ivan
    Conrardy, Aaron
    Sulejmani, Armen
    Nirumand, Atefeh
    Ul Haq, Fitash
    Gomez-Vazquez, Marcos
    Sottet, Jean-Sebastien
    Cabot, Jordi
    ENTERPRISE, BUSINESS-PROCESS AND INFORMATION SYSTEMS MODELING, BPMDS 2024, EMMSAD 2024, 2024, 511 : 203 - 212
  • [50] OpenIEC: an open-source code for interfacial energy calculation in alloys
    Shenglan Yang
    Jing Zhong
    Jiong Wang
    Lijun Zhang
    George Kaptay
    Journal of Materials Science, 2019, 54 : 10297 - 10311