DocumentCode
660560
Title
Detecting bad smells in source code using change history information
Author
Palomba, Fabio ; Bavota, Gabriele ; Di Penta, Massimiliano ; Oliveto, Rocco ; De Lucia, Andrea ; Poshyvanyk, Denys
Author_Institution
Univ. of Salerno, Fisciano, Italy
fYear
2013
fDate
11-15 Nov. 2013
Firstpage
268
Lastpage
278
Abstract
Code smells represent symptoms of poor implementation choices. Previous studies found that these smells make source code more difficult to maintain, possibly also increasing its fault-proneness. There are several approaches that identify smells based on code analysis techniques. However, we observe that many code smells are intrinsically characterized by how code elements change over time. Thus, relying solely on structural information may not be sufficient to detect all the smells accurately. We propose an approach to detect five different code smells, namely Divergent Change, Shotgun Surgery, Parallel Inheritance, Blob, and Feature Envy, by exploiting change history information mined from versioning systems. We applied approach, coined as HIST (Historical Information for Smell deTection), to eight software projects written in Java, and wherever possible compared with existing state-of-the-art smell detectors based on source code analysis. The results indicate that HIST´s precision ranges between 61% and 80%, and its recall ranges between 61% and 100%. More importantly, the results confirm that HIST is able to identify code smells that cannot be identified through approaches solely based on code analysis.
Keywords
fault tolerant computing; software maintenance; software management; source code (software); HIST; Historical Information for Smell deTection; Java; bad smells detection; blob; change history information; code elements; code smells; divergent change; fault proneness; feature envy; parallel inheritance; shotgun surgery; smell detectors; software projects; source code analysis; structural information; versioning systems; Association rules; Detectors; Feature extraction; History; Measurement; Surgery; Change History Information; Code Smells;
fLanguage
English
Publisher
ieee
Conference_Titel
Automated Software Engineering (ASE), 2013 IEEE/ACM 28th International Conference on
Conference_Location
Silicon Valley, CA
Type
conf
DOI
10.1109/ASE.2013.6693086
Filename
6693086
Link To Document