skip to main content
10.5555/2486788.2486792acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

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

Published: 18 May 2013 Publication History

Abstract

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.

References

[1]
M. Fowler, Refactoring: Improving the Design of Existing Code, 1999.
[2]
W. Opdyke and R. E. Johnson, “Refactoring, An Aid in Designing Application Frameworks and Evolving Object-oriented Systems,” in SOOPA, 1990.
[3]
E. Murphy-Hill, C. Parnin, and A. P. Black, “How We Refactor, and How We Know It,” in ICSE, 2009.
[4]
M. Vakilian, N. Chen, S. Negara, B. A. Rajkumar, B. P. Bailey, and R. E. Johnson, “Use, Disuse, and Misuse of Automated Refactorings,” in ICSE, 2012.
[5]
E. Mealy, D. Carrington, P. Strooper, and P. Wyeth, “Improving Usability of Software Refactoring Tools,” in ASWEC, 2007.
[6]
A. O’Connor, M. Shonle, and W. Griswold, “Star Diagram with Automated Refactorings for Eclipse,” in Eclipse, 2005.
[7]
C. Parnin, C. Görg, and O. Nnadi, “A Catalogue of Lightweight Visualizations to Support Code Smell Inspection,” in SoftVis, 2008.
[8]
E. R. Murphy-Hill, M. Ayazifar, and A. P. Black, “Restructuring Software With Gestures,” in VL/HCC, 2011.
[9]
E. Murphy-Hill and A. P. Black, “Breaking the Barriers to Successful Refactoring: Observations and Tools for Extract Method,” in ICSE, 2008.
[10]
“DNDRefactoring,” https://wiki.engr.illinois.edu/display/cs599yyl/ DNDRefactoring.
[11]
D. Roberts, J. Brant, and R. Johnson, “A Refactoring Tool for Smalltalk,” Theory and Practice of Object Systems, 1997.
[12]
“Quick Assist,” http://help.eclipse.org/indigo/topic/org.eclipse.jdt.doc. user/reference/ref-java-editor-quickassist.htm.
[13]
E. Murphy-Hill and A. P. Black, “Refactoring Tools: Fitness for Purpose,” IEEE Software, 2008.
[14]
P. Weigerber and S. Diehl, “Are refactorings less error-prone than other changes,” in MSR, 2006.
[15]
G. C. Murphy, M. Kersten, and L. Findlater, “How are java software developers using the eclipse ide?” IEEE Software, 2006.
[16]
S. K. Card, A. Newell, and T. P. Moran, The Psychology of Human-Computer Interaction, 2000.
[17]
J. M. Corbin and A. L. Strauss, Basics of Qualitative Research: Techniques and Procedures for Developing Grounded Theory, 2008.
[18]
S. Demeyer, M. Rieger, B. Van Rompaey, and B. Du Bois, “Refactoring Lab Session,” http://lore.ua.ac.be/Research/Artefacts/ refactoringLabSession/.
[19]
“Refactor Actions,” http://help.eclipse.org/indigo/topic/org.eclipse.jdt. doc.user/reference/ref-menu-refactor.htm.
[20]
“Tips and Tricks (JDT),” http://help.eclipse.org/indigo/topic/org.eclipse. jdt.doc.user/tips/jdt% tips.html.
[21]
M. Kobayashi and T. Igarashi, “Boomerang: Suspendable Drag-and-Drop Interactions Based on a Throw-and-Catch Metaphor,” in UIST, 2007.
[22]
M. Collomb, M. Hasco¨et, P. Baudisch, and B. Lee, “Improving Drag- and-Drop on Wall-size Displays,” in GI, 2005.
[23]
M. Collomb and M. Hasco¨et, “Extending Drag-and-Drop to New Interactive Environments: A Multi-display, Multi-instrument and Multi-user Approach,” Interact. Comput., 2008.
[24]
M. J. Conway, “Alice: Easy-to-Learn 3D Scripting for Novices,” Ph.D. dissertation, University of Virginia, 1997.
[25]
“Squeakland: Home of Squeak Etoys,” http://www.squeakland.org/ about/.
[26]
J. Maloney, M. Resnick, N. Rusk, B. Silverman, and E. Eastmond, “The Scratch Programming Language and Environment,” Trans. Comput. Educ., 2010.
[27]
“In-place Refactorings,” http://www.jetbrains.com/idea/webhelp/editor. html.
[28]
“Refactor! Pro,” http://devexpress.com/Products/Visual Studio Add-in/ Coding Assistance/refactor pro.xml.
[29]
“Restructurer101,” http://www.headwaysoftware.com/products/.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '13: Proceedings of the 2013 International Conference on Software Engineering
May 2013
1561 pages
ISBN:9781467330763

Sponsors

Publisher

IEEE Press

Publication History

Published: 18 May 2013

Check for updates

Qualifiers

  • Research-article

Conference

ICSE '13
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 06 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media