W&M ScholarWorks Arts & Sciences Articles Arts and Sciences 2015 Mining Version Histories for Detecting Code Smells Fabio Palomba Andrea De Lucia Gabriele Bavota Denys Poshyvanyk College of William and Mary Follow this and additional works at: https://scholarworks.wm.edu/aspubs Recommended Citation Palomba, F., Bavota, G., Di Penta, M., Oliveto, R., Poshyvanyk, D., & De Lucia, A. (2014). Mining version histories for detecting code smells. IEEE Transactions on Software Engineering, 41(5), 462-489. This Article is brought to you for free and open access by the Arts and Sciences at W&M ScholarWorks. It has been accepted for inclusion in Arts & Sciences Articles by an authorized administrator of W&M ScholarWorks. For more information, please contact
[email protected]. 462 IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 41, NO. 5, MAY 2015 Mining Version Histories for Detecting Code Smells Fabio Palomba, Student Member, IEEE, Gabriele Bavota, Member, IEEE Computer Society, Massimiliano Di Penta, Rocco Oliveto, Member, IEEE Computer Society, Denys Poshyvanyk, Member, IEEE Computer Society, and Andrea De Lucia, Senior Member, IEEE Abstract—Code smells are symptoms of poor design and implementation choices that may hinder code comprehension, and possibly increase change- and fault-proneness. While most of the detection techniques just rely on structural information, many code smells are intrinsically characterized by how code elements change over time. In this paper, we propose Historical Information for Smell deTection (HIST), an approach exploiting change history information to detect instances of five different code smells, namely Divergent Change, Shotgun Surgery, Parallel Inheritance, Blob, and Feature Envy. We evaluate HIST in two empirical studies.