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 条
  • [21] Characterizing the Occurrence of Dockerfile Smells in Open-Source Software: An Empirical Study
    Wu, Yiwen
    Zhang, Yang
    Wang, Tao
    Wang, Huaimin
    IEEE ACCESS, 2020, 8 : 34127 - 34139
  • [22] Open-source license comes to 'code morphing'
    Myrvaagnes, R
    ELECTRONIC PRODUCTS MAGAZINE, 2001, 43 (10): : 23 - 23
  • [23] NATURALCC: An Open-Source Toolkit for Code Intelligence
    Wan, Yao
    He, Yang
    Bi, Zhangqian
    Zhang, Jianguo
    Sui, Yulei
    Zhang, Hongyu
    Hashimoto, Kazuma
    Jin, Hai
    Xu, Guandong
    Xiong, Caiming
    Yu, Philip S.
    2022 ACM/IEEE 44TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: COMPANION PROCEEDINGS (ICSE-COMPANION 2022), 2022, : 149 - 153
  • [24] Generation of Code Tracing Problems From Open-Source Code
    Sychev, Oleg
    Prokudin, Artem
    Denisov, Mikhail
    PROCEEDINGS OF THE 54TH ACM TECHNICAL SYMPOSIUM ON COMPUTER SCIENCE EDUCATION, VOL 1, SIGCSE 2023, 2023, : 875 - 881
  • [25] Empirical evaluation of code smells in open-source software (OSS) using Best Worst Method (BWM) and TOPSIS approach
    Tandon, Stuti
    Kumar, Vijay
    Singh, V. B.
    INTERNATIONAL JOURNAL OF QUALITY & RELIABILITY MANAGEMENT, 2022, 39 (03) : 815 - 835
  • [26] Discovery of Technical Expertise from Open Source Code Repositories
    Venkataramani, Rahul
    Gupta, Atul
    Asadullah, Allahbaksh
    Muddu, Basavaraju
    Bhat, Vasudev
    PROCEEDINGS OF THE 22ND INTERNATIONAL CONFERENCE ON WORLD WIDE WEB (WWW'13 COMPANION), 2013, : 97 - 98
  • [27] Development of a code clone search tool for open source repositories
    Xia, Pei
    Manabe, Yuki
    Yoshida, Norihiro
    Inoue, Katsuro
    Computer Software, 2012, 29 (03): : 181 - 187
  • [28] Exploring Social Contagion in Open-Source Communities by Mining Software Repositories
    Shoroye, Zakariyah
    Yaqub, Waheeb
    Mohammed, Azhar Ahmed
    Aung, Zeyar
    Svetinovic, Davor
    NEURAL INFORMATION PROCESSING, ICONIP 2015, PT IV, 2015, 9492 : 120 - 127
  • [29] An Empirical Study on the Occurrences of Code Smells in Open Source and Industrial Projects
    Rahman, Md. Masudur
    Satter, Abdus
    Joarder, Md. Mahbubul Alam
    Sakib, Kazi
    PROCEEDINGS OF THE16TH ACM/IEEE INTERNATIONAL SYMPOSIUM ON EMPIRICAL SOFTWARE ENGINEERING AND MEASUREMENT, ESEM 2022, 2022, : 289 - 294
  • [30] Rxnat: An Open-Source R Package for XNAT-Based Repositories
    Gherman, Adrian
    Muschelli, John
    Caffo, Brian
    Crainiceanu, Ciprian
    FRONTIERS IN NEUROINFORMATICS, 2020, 14