arrow
Return

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

delete2018-02-01
delete29
PRE
AI
Z
Zhifei Chen
L
Lin Chen
周
周晓宇 (Xiaoyu Zhou)
B
Baowen Xu *
DOI:10.1016/j.infsof.2017.09.011delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
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.
Keywords:
Python
Code smell
Detection strategy
Software maintainability
AI Summary

AI Summary

Key information extracted from the uploaded paper, including a brief overview, abstract, background, key highlights, visual analysis, and future outlook.

Journal

Information and Software Technology cover
Information and Software Technology
IF:
4.3
Papers:
3.8K
Citations:
7.7K

Organization

S
southeast university - china
Scholars:
5.3W
Papers: 4.9W
Citations: 57
N
nanjing university
Scholars:
7.8W
Papers: 5.6W
Citations: 87
Cited Papers

Cited Papers

Identification of Move Method Refactoring Opportunities
err2009-05-01
err274
PREAI
errTsantalis, Nikolaos; Chatzigeorgiou, Alexander
errShare
errSave
An exploratory study of the impact of antipatterns on class change- and fault-proneness
err2011-08-06
err291
PREAI
errKhomh, Foutse; Di Penta, Massimiliano; Gueheneuc, Yann-Gael; Antoniol, Giuliano
errShare
errSave
Diabetic neuropathies in brain are induced by deficiency of BDNF
err2002-09-01
err0
PREAI
errA Nitta; R Murai; N Suzuki; H Ito; H Nomoto; G Katoh; Y Furukawa; S Furukawa
errShare
errSave
DECOR: A Method for the Specification and Detection of Code and Design Smells
err2010-01-01
err541
errOAAI
errMoha, Naouel; Gueheneuc, Yann-Gael; Duchien, Laurence; Le Meur, Anne-Francoise
errShare
errSave
A controlled experiment investigation of an object-oriented design heuristic for maintainability
err2004-07-01
err51
PREAI
errDeligiannis, I; Stamelos, I; Angelis, L; Roumeliotis, M; Shepperd, M
errShare
errSave
researcher View more