On experimenting refactoring tools to remove code smells

When we develop a software project of a certain complexity, source code maintainability could become a problem, in particular if developers do not use a consolidate development process that simplifies the management of the entire project. When source code becomes very complex, it is difficult for developers to share and modify it. We can improve internal software qualities such as reusability, maintainability and readability through refactoring. Refactoring can be applied to remove possible problems in the code, as code smells. Identifying code smells and removing them through refactoring results in better code maintainability, but it can be an overwhelming task. In this paper, we describe our experimentation on using four refactoring tools to remove code smells in four systems, with the aim to outline advantages and disadvantages of the tools with respect to the accomplishment of this task, and to identify the smells easier to be removed among the ones we considered in this paper.

[1]  Francesca Arcelli Fontana,et al.  Towards Assessing Software Architecture Quality by Exploiting Code Smell Relations , 2015, 2015 IEEE/ACM 2nd International Workshop on Software Architecture and Metrics.

[2]  Francesca Arcelli Fontana,et al.  Impact of refactoring on quality code evaluation , 2011, WRT '11.

[3]  Yania Crespo,et al.  Perspectives on automated correction of bad smells , 2009, IWPSE-Evol '09.

[4]  Jing Li,et al.  The Qualitas Corpus: A Curated Collection of Java Code for Empirical Studies , 2010, 2010 Asia Pacific Software Engineering Conference.

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

[6]  William C. Wake,et al.  Refactoring Workbook , 2003 .

[7]  Mauricio A. Saca Refactoring improving the design of existing code , 2017, 2017 IEEE 37th Central America and Panama Convention (CONCAPAN XXXVII).

[8]  Stéphane Ducasse,et al.  Object-Oriented Metrics in Practice , 2005 .

[9]  Tibor Gyimóthy,et al.  A Case Study of Refactoring Large-Scale Industrial Systems to Efficiently Improve Source Code Quality , 2014, ICCSA.

[10]  Eduardo Figueiredo,et al.  Understanding the longevity of code smells: preliminary results of an explanatory survey , 2011, WRT '11.

[11]  Jocelyn Simmonds A Comparison of Software Refactoring Tools , 2002 .

[12]  Robert M. Hierons,et al.  Is a strategy for code smell assessment long overdue? , 2010, WETSoM '10.

[13]  Francesca Arcelli Fontana,et al.  Automatic detection of bad smells in code: An experimental assessment , 2012, J. Object Technol..

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

[15]  Miryung Kim,et al.  Ref-Finder: a refactoring reconstruction tool based on logic query templates , 2010, FSE '10.

[16]  Francesca Arcelli Fontana,et al.  A Duplicated Code Refactoring Advisor , 2015, XP.

[17]  Martin Zbigniew Drozdz,et al.  A critical analysis of two refactoring tools , 2008 .

[18]  Muhammad Ilyas,et al.  A Comparative Study on Code Smell Detection Tools , 2013 .