Drag-and-drop refactoring: Intuitive and efficient program transformation

Author(s): Yun Young Lee, N Chen, R.E. Johnson
Venue: 2013 35th International Conference on Software Engineering (ICSE)
Date: 18-26 May 2013

Type of Experiement: Survey/Multi-Case Study
Class/Experience Level: Professional
Data Collection Method: Observation, Survey


The study focuses on the topic of refactoring which is a technique for restructuring existing code in order to modify its structure without changing the behavior. They acknowledge that nearly all IDEs offer built in support for automated refactoring tools but claim the user interface for the refactoring tools has remained largely unchanged from the menu/dialog used in the first automated refactoring tool (Smalltalk Refactoring Browser). The team states as the number of potential refactorings and their options increase the configuration of the existing tools becomes unintuitive and inefficient.

Previous studies have identified problems with the automated refactoring tools currently available. Programmers have difficulty identifying opportunities for using the tool, invoking the right refactoring from the options and often find the names and position of refactorings in the menu confusing. Further trouble arises with configuration dialogs that disrupt the programming workflow and impose an additional overhead of requiring the programmer to understand the options. The team argues that the problems are due to an overreliance on menus and dialogs in the current refactoring tools.

The study aims to eliminate the use of menus and dialogs by streamlining the invocation and configuration process using drag and drop program elements. The team implemented the process via their own tool coined ‘DNDRefactoring’ for the Eclipse IDE. DNDRefactoring eliminates the need for menus and dialogs that programmers have to understand and interact with. Removing these items makes the configuration time and error rates compared to traditional menu and dialog approach lower.

The team evaluated the tool through controlled user studies and surveys in order to demonstrate their approach was intuitive, more efficient and less error-prone compared to the traditional methods available in the IDEs. The results of the study rally support for a next generation of refactoring tools that no longer use the traditional menu and dialog approach.