Empirical Software Engineering · 2017 · 307 citations · 48 references
ComputingComputer ScienceProgramming LanguagesQuality AssuranceSoftware EngineeringSoftware DesignSoftware EvolutionSoftware MaintenanceCode ComprehensionCode MaintainabilityCode Smell DetectionCode SmellsMaintainabilitySoftware MaintainabilitySource Code Change Analysis
Code smells signal poor design choices that can reduce code comprehensibility and maintainability, yet their overall effect on maintainability remains unclear. This study investigates how widespread code smells are and how they influence code change‑ and fault‑proneness. We analyzed 17,350 manually validated instances of 13 code smell kinds across 395 releases of 30 open‑source projects. Smells associated with long or complex code, such as Complex Class, are highly diffused and correlate with increased change‑ and fault‑proneness compared to smell‑free classes.
Code smells are symptoms of poor design and implementation choices that may hinder code comprehensibility and maintainability. Despite the effort devoted by the research community in studying code smells, the extent to which code smells in software systems affect software maintainability remains still unclear. In this paper we present a large scale empirical investigation on the diffuseness of code smells and their impact on code change- and fault-proneness. The study was conducted across a total of 395 releases of 30 open source projects and considering 17,350 manually validated instances of 13 different code smell kinds. The results show that smells characterized by long and/or complex code (e.g., Complex Class) are highly diffused, and that smelly classes have a higher change- and fault-proneness than smell-free classes.
48
Choice Reviews Online · 1990 · 35.7K citations
A Simple Sequentially Rejective Multiple Test Procedure
Sture Holm · Scandinavian Journal of Statistics · 1979 · 21.8K citations
Practical Nonparametric Statistics
David J. Groggel, W. J. Conover · Technometrics · 2000 · 11.1K citations
Jacek Śliwerski, Thomas Zimmermann, Andreas Zeller · ACM SIGSOFT Software Engineering Notes · 2005 · 803 citations