Programmer-Friendly Refactoring Errors

Refactoring tools, common to many integrated development environments, can help programmers to restructure their code. These tools sometimes refuse to restructure the programmer's code, instead giving the programmer a textual error message that she must decode if she wishes to understand the reason for the tool's refusal and what corrective action to take. This paper describes a graphical alternative to textual error messages called Refactoring Annotations. It reports on two experiments, one using an integrated development environment and the other using paper mockups, that show that programmers can use Refactoring Annotations to quickly and accurately understand the cause of refactoring errors.

[1]  Jakob Nielsen,et al.  Ten Usability Heuristics , 2006 .

[2]  Zhenchang Xing,et al.  Refactoring Practice: How it is and How it Should be Supported - An Eclipse Case Study , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

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

[4]  Peter C. Rigby,et al.  Study of novice programmers using Eclipse and Gild , 2005, eclipse '05.

[5]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[6]  Matthias Felleisen,et al.  DrScheme: a programming environment for Scheme , 2002, J. Funct. Program..

[7]  Emerson Murphy-Hill,et al.  Programmer friendly refactoring tools , 2009 .

[8]  Martin Hitz,et al.  Measuring coupling and cohesion in object-oriented systems , 1995 .

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

[10]  Günter Kniesel,et al.  Static composition of refactorings , 2004, Sci. Comput. Program..

[11]  Ralph E. Johnson,et al.  A Refactoring Tool for Smalltalk , 1997, Theory Pract. Object Syst..

[12]  Mark Horton,et al.  An Introduction to Display Editing with Vi , 1998 .

[13]  Darko Marinov,et al.  Automated testing of refactoring engines , 2007, ESEC-FSE '07.

[14]  Peta Wyeth,et al.  Improving Usability of Software Refactoring Tools , 2007, 2007 Australian Software Engineering Conference (ASWEC'07).

[15]  Michael D. Ernst Practical Fine-Grained Static Slicing of Optimized Code , 1994 .

[16]  Judy Kay,et al.  The Neglected Battle Fields of Syntax Errors , 2003, ACE.

[17]  William G. Griswold Program restructuring as an aid to software maintenance , 1992 .

[18]  Andrew P. Black,et al.  Breaking the barriers to successful refactoring: observations and tools for extract method , 2008, ICSE.

[19]  T. Dean Hendrix,et al.  Do visualizations improve program comprehensibility? experiments with control structure diagrams for Java , 2000, SIGCSE '00.