Understanding the longevity of code smells: preliminary results of an explanatory survey

There is growing empirical evidence that some (patterns of) code smells seem to be, either deliberately or not, ignored. More importantly, there is little knowledge about the factors that are likely to influence the longevity of smell occurrences in software projects. Some of them might be related to limitations of tool support, while others might be not. This paper presents the preliminary results of an explanatory survey aimed at better understanding the longevity of code smells in software projects. A questionnaire was elaborated and distributed to developers, and 33 answers were collected up to now. Our preliminary observations reveal, for instance, that smell removal with refactoring tools is often avoided when maintaining frameworks or product lines.

[1]  E. Murphy-Hill,et al.  Breaking the barriers to successful refactoring , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[2]  Andrew P. Black,et al.  Breaking the barriers to successful refactoring: observations and tools for extract method , 2008, ICSE.

[3]  Tom Mens,et al.  A survey of software refactoring , 2004, IEEE Transactions on Software Engineering.

[4]  Matthias M. Müller,et al.  Experiment about test-first programming , 2002, IEE Proc. Softw..

[5]  Vander Alves,et al.  Extracting and Evolving Mobile Games Product Lines , 2005, SPLC.

[6]  Yann-Gaël Guéhéneuc,et al.  Mining the Lexicon Used by Programmers during Sofware Evolution , 2007, 2007 IEEE International Conference on Software Maintenance.

[7]  David Janzen Software architecture improvement through test-driven development , 2005, OOPSLA '05.

[8]  Alessandro F. Garcia,et al.  An exploratory study of code smells in evolving aspect-oriented systems , 2011, AOSD '11.

[9]  Kent L. Beck,et al.  Test-driven Development - by example , 2002, The Addison-Wesley signature series.

[10]  Alfred V. Aho,et al.  Do Crosscutting Concerns Cause Defects? , 2008, IEEE Transactions on Software Engineering.

[11]  Lech Madeyski,et al.  The Impact of Pair Programming and Test-Driven Development on Package Dependencies in Object-Oriented Design - An Experiment , 2006, PROFES.

[12]  Andrew P. Black,et al.  How we refactor, and how we know it , 2009, 2009 IEEE 31st International Conference on Software Engineering.