Understanding metric-based detectable smells in Python']Python software: A comparative study

被引:22
|
作者
Chen Zhifei [1 ]
Chen Lin [1 ]
Ma Wanwangying [1 ]
Zhou Xiaoyu [2 ]
Zhou Yuming [1 ]
Xu Baowen [1 ]
机构
[1] Nanjing Univ, State Key Lab Novel Software Technol, Nanjing 210093, Jiangsu, Peoples R China
[2] Southeast Univ, Sch Comp Sci & Engn, Nanjing 210096, Jiangsu, Peoples R China
基金
中国国家自然科学基金;
关键词
!text type='Python']Python[!/text; Code smell; Detection strategy; Software maintainability; CODE-SMELLS; BAD SMELLS; IMPACT; IDENTIFICATION; PROBABILITY; AGREEMENT;
D O I
10.1016/j.infsof.2017.09.011
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Context Code smells are supposed to cause potential comprehension and maintenance problems in software development. Although code smells are studied in many languages, e.g. Java and C#, there is a lack of technique or tool support addressing code smells in Python. Objective: Due to the great differences between Python and static languages, the goal of this study is to define and detect code smells in Python programs and to explore the effects of Python smells on software maintainability. Method: In this paper, we introduced ten code smells and established a metric-based detection method with three different filtering strategies to specify Metric thresholds (Experience-Based Strategy, Statistics-Based Strategy, and Tuning Machine Strategy). Then, we performed a Comparative study to investigate how three detection strategies perform in detecting Python smells and how these smells affect software maintainability with different detection strategies. This study utilized a corpus of 106 Python projects with most stars on GitHub. Results: The results showed that: (1) the metric-based detection approach performs well in detecting Python smells and Tuning Machine Strategy achieves the best accuracy; (2) the three detection strategies discover some different smell occurrences, and Long Parameter List and Long Method are more prevalent than other smells; (3) several kinds of code smells are more significantly related to changes or faults in Python modules. Conclusion: These findings reveal the key features of Python smells and also provide a guideline for the choice of detection strategy in detecting and analyzing Python smells.
引用
收藏
页码:14 / 29
页数:16
相关论文
共 50 条
  • [41] DPM-PSTM: Dual-port Memory Based Python']Python Software Transactional Memory
    Kordic, Branislav
    Popovic, Miroslav
    Basicevic, Ilija
    FOURTH EASTERN EUROPEAN REGIONAL CONFERENCE ON THE ENGINEERING OF COMPUTER-BASED SYSTEMS ECBS-EERC 2015, 2015, : 126 - 129
  • [42] A Python']Python-OpenCV based software for processing single-bacterium tracking microscopy videos
    Tu, Zhiwen
    Qin, Xianan
    BIOPHYSICAL JOURNAL, 2023, 122 (03) : 140A - 141A
  • [43] Digital CS1 Study Pack Based on Moodle and Python']Python
    Radenski, Atanas
    ITICSE '08: PROCEEDINGS OF THE 13TH ANNUAL CONFERENCE ON INNOVATION AND TECHNOLOGY IN COMPUTER SCIENCE EDUCATION, 2008, : 325 - 325
  • [44] A Comparative Evaluation on the Quality of Manual and Automatic Test Case Generation Techniques for Scientific Software - A Case Study of a Python']Python Project for Material Science Workflows
    Truebenbach, Daniel
    Mueller, Sebastian
    Grunske, Lars
    15TH SEARCH-BASED SOFTWARE TESTING WORKSHOP (SBST 2022), 2022, : 6 - 13
  • [45] Metric-based software reliability prediction approach and its application
    Ying Shi
    Ming Li
    Steven Arndt
    Carol Smidts
    Empirical Software Engineering, 2017, 22 : 1579 - 1633
  • [46] A Python']Python-based Simulation Software for monitoring the Operability State of Critical Infrastructures under Emergency Conditions
    Koch, Tobias
    Moeller, Dietmar P. F.
    Deutschmann, Andreas
    2018 IEEE INTERNATIONAL CONFERENCE ON ELECTRO/INFORMATION TECHNOLOGY (EIT), 2018, : 290 - 295
  • [47] Metric-based software reliability prediction approach and its application
    Shi, Ying
    Li, Ming
    Arndt, Steven
    Smidts, Carol
    EMPIRICAL SOFTWARE ENGINEERING, 2017, 22 (04) : 1579 - 1633
  • [48] Research and deployment of a Python']Python-based software framework for large-scale physical experiment control
    Xia, Shouteng
    Zhang, Yinhong
    Qian, Sen
    Song, Ruiqiang
    Yang, Jie
    JOURNAL OF INSTRUMENTATION, 2023, 18 (10)
  • [49] WhatEELS. A python']python-based interactive software solution for ELNES analysis combining clustering and NLLS
    Blanco-Portals, J.
    Torruella, P.
    Baiutti, F.
    Anelli, S.
    Torrell, M.
    Tarancon, A.
    Peiro, F.
    Estrade, S.
    ULTRAMICROSCOPY, 2022, 232
  • [50] Development of a Python']Python-Based Algorithm for Comparative Analysis of Multiparticipant Next Generation Sequencing Data
    Martz, Flora G.
    Forst, Thomas M.
    Ryan, Sean M.
    Murphy, Patrick J. M.
    FASEB JOURNAL, 2016, 30