An Exploratory Study on Dead Methods in Open-source Java Desktop Applications
Background. Dead code is a code smell. It can refer to code blocks, fields, methods, etc. that are unused and/or unreachable. Empirical evidence shows that dead code harms source code comprehensibility and maintainability in software applications. Researchers have gathered little empirical evidence on the spread of dead code in software applications. Moreover, we know little about the role of this code smell during software evolution.
Aims. Our goal is to gather preliminary empirical evidence on the spread and evolution of dead methods in open-source Java desktop applications. Given the exploratory nature of our investigation, we believe that its results can justify more resource- and time-demanding research on dead methods.
Method. We quantitatively analyzed the commit histories of 13 open-source Java desktop applications, whose software projects were hosted on GitHub, for a total of 1,044 commits. We focused on dead methods detected at a commit level to investigate the spread and evolution of dead methods in the studied applications. The perspective of our explorative study is that of both practitioners and researchers.
Results. The most important take-away results can be summarized as follows: (i) dead methods seems to affect open-source Java desktop applications; (ii) dead methods generally survive for a long time, in terms of commits, before being “buried” or “revived;” (iii) dead methods are rarely revived; and (iv) most dead methods are dead since the creation of the corresponding methods.
Conclusions. We conclude that developers should carefully handle dead methods in open-source Java desktop applications since this code smell is harmful, widespread, rarely revived, and survives for a long time in software applications. Our results also justify future research on dead methods.
Fri 15 OctDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
14:20 - 15:20 | Mining Software RepositoriesTechnical Papers at ESEM ROOM Chair(s): Fabio Calefato University of Bari | ||
14:20 15mTalk | Characterizing and Predicting Good First Issues Technical Papers Yuekai Huang Institute of Software, Chinese Academy of Sciences, Junjie Wang Institute of Software at Chinese Academy of Sciences, Song Wang York University, Zhe Liu Institute of Software at Chinese Academy of Sciences, Dandan Wang Institute of Software, Chinese Academy of Sciences, Qing Wang Institute of Software at Chinese Academy of Sciences Pre-print | ||
14:35 15mTalk | An Empirical Study on Refactoring-Inducing Pull Requests Technical Papers Flavia Coelho Federal University of Campina Grande, Nikolaos Tsantalis Concordia University, Tiago Massoni Federal University of Campina Grande, Everton L. G. Alves Federal University of Campina Grande Pre-print Media Attached | ||
14:50 15mTalk | Promises and Perils of Inferring Personality on GitHub Technical Papers Frenk van Mil Delft University of Technology, Ayushi Rastogi University of Groningen, The Netherlands, Andy Zaidman Delft University of Technology Pre-print Media Attached | ||
15:05 15mTalk | An Exploratory Study on Dead Methods in Open-source Java Desktop Applications Technical Papers Danilo Caivano University of Bari, Pietro Cassieri University of Basilicata, Simone Romano University of Bari, Giuseppe Scanniello University of Basilicata |