Evaluating software refactoring tool support

Up to 75% of the costs associated with the development of software systems occur post-deployment during maintenance and evolution. Software refactoring is a process that can significantly reduce the costs associated with software evolution. Refactoring is defined as internal modification of source code to improve system quality, without change to observable behaviour. Tool support for software refactoring attempts to further reduce evolution costs by automating manual, error-prone and tedious tasks. Although the process of refactoring is well-defined, tools supporting refactoring do not support the full process. Existing tools suffer from issues associated with the level of automation, the stages of the refactoring process supported or automated, the subset of refactorings that can be applied, and complexity of the supported refactorings. This paper presents a framework for evaluating software refactoring tool support based on the DESMET method. For the DESMET application, a functional analysis of the requirements for supporting software refactoring is used in conjunction with a case study. This evaluation was completed to assess the support provided by six Java refactoring tools and to evaluate the efficacy of using the DESMET method for evaluating refactoring tools.

[1]  Frank W. Calliss Problems with automatic restructurers , 1988, SIGP.

[2]  Barbara Ann Kitchenham,et al.  Evaluating software engineering methods and tool part 5: the influence of human factors , 1997, SOEN.

[3]  Meir M. Lehman,et al.  Rules and Tools for Software Evolution Planning and Management , 2001, Ann. Softw. Eng..

[4]  M R Endsley,et al.  Level of automation effects on performance, situation awareness and workload in a dynamic control task. , 1999, Ergonomics.

[5]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[6]  Ivan Moore Guru - A Tool for Automatic Restructuring of Self Inheritance Hierarchies , 1995 .

[7]  Paul Strooper Proceedings of the 2005 Australian Software Engineering Conference , 2004 .

[8]  Tom Mens,et al.  Towards a Taxonomy of Software Evolution , 2003 .

[9]  Salim Yusuf,et al.  Effectiveness of comprehensive disease management programmes in improving clinical outcomes in heart failure patients. A meta‐analysis , 2005, European journal of heart failure.

[10]  Tom Mens,et al.  Identifying refactoring opportunities using logic meta programming , 2003, Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings..

[11]  Arun Lakhotia,et al.  Program comprehension , 1999 .

[12]  William F. Opdyke,et al.  Refactoring object-oriented frameworks , 1992 .

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

[14]  M. Endsley Automation and situation awareness. , 1996 .

[15]  Jim Welsh,et al.  Systematic evaluation of design choices for software development tools , 1998, Softw. Concepts Tools.

[16]  Joshua Kerievsky,et al.  Refactoring to Patterns , 2004, XP/Agile Universe.

[17]  Arnold M. Lund,et al.  Expert Ratings of Usability Maxims , 1997 .

[18]  Mel Ó Cinnéide Automated refactoring to introduce design patterns , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[19]  Magdalena Balazinska,et al.  Advanced clone-analysis to support object-oriented system refactoring , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[20]  Peter Ebraert Enabling Dynamic Software Evolution through Automatic Refactoring , 2004 .