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

Drag-and-drop refactoring: Intuitive and efficient program transformation
复制标题

拖放式重构:直观高效的程序改造

DOI:
10.1109/icse.2013.6606548
复制
发表时间:
2013
期刊:
2013 35th International Conference on Software Engineering (ICSE)
影响因子:
--
通讯作者:
Ralph E. Johnson
Ralph E. Johnson
中科院分区:
--
文献类型:
--
作者:
Yun Young Lee;Nicholas Chen;Ralph E. Johnson

文献摘要

被引文献

相似文献

重构是一种规范的技术,用于重构代码以提高其可读性和可维护性。几乎所有现代集成开发环境(IDE)都提供了对自动化重构工具的内置支持。然而,重构工具的用户界面与十多年前第一个自动化重构工具Smalltalk Refactoring Browser中引入的菜单和对话框方法相比,基本上没有变化。随着支持的重构及其选项的增加,通过传统方法调用和配置这些工具变得越来越不直观和低效。本文的贡献是一种新颖的方法,完全消除了菜单和对话框的使用。我们通过拖放直接操作程序元素来简化调用和配置过程。我们在我们的工具Drag-and-Drop Refactoring(DND Refactoring)中实现并评估了这种方法,它支持Eclipse IDE中23种重构中的12种。通过调查和受控用户研究的实证评估表明,与当今IDE中可用的传统方法相比,我们的方法更直观,更有效,更不易出错。我们的研究结果支持研究人员和工具开发人员重新思考未来重构工具的设计。
Refactoring is a disciplined technique for restructuring code to improve its readability and maintainability. Almost all modern integrated development environments (IDEs) offer built-in support for automated refactoring tools. However, the user interface for refactoring tools has remained largely unchanged from the menu and dialog approach introduced in the Smalltalk Refactoring Browser, the first automated refactoring tool, more than a decade ago. As the number of supported refactorings and their options increase, invoking and configuring these tools through the traditional methods have become increasingly unintuitive and inefficient. The contribution of this paper is a novel approach that eliminates the use of menus and dialogs altogether. We streamline the invocation and configuration process through direct manipulation of program elements via drag-and-drop. We implemented and evaluated this approach in our tool, Drag-and-Drop Refactoring (DNDRefactoring), which supports up to 12 of 23 refactorings in the Eclipse IDE. Empirical evaluation through surveys and controlled user studies demonstrates that our approach is intuitive, more efficient, and less error-prone compared to traditional methods available in IDEs today. Our results bolster the need for researchers and tool developers to rethink the design of future refactoring tools.