Results 1 -
5 of
5
Breaking the barriers to successful refactoring: observations and tools for extract method
- In ICSE ’08: Proceedings of the 30th International Conference on Software Engineering
, 2008
"... Refactoring is the process of changing the structure of code without changing its behavior. Refactoring can be semi-automated with tools, which should make it easier for programmers to refactor quickly and correctly. However, we have observed that many tools do a poor job of communicating errors tri ..."
Abstract
-
Cited by 14 (8 self)
- Add to MetaCart
Refactoring is the process of changing the structure of code without changing its behavior. Refactoring can be semi-automated with tools, which should make it easier for programmers to refactor quickly and correctly. However, we have observed that many tools do a poor job of communicating errors triggered by the refactoring process and that programmers using them sometimes refactor slowly, conservatively, and incorrectly. In this paper we characterize problems with current refactoring tools, demonstrate three new tools to assist in refactoring, and report on a user study that compares these new tools against existing tools. The results of the study show that speed, accuracy, and user satisfaction can be significantly increased. From the new tools we induce a set of usability recommendations that we hope will help inspire a new generation of programmer-friendly refactoring tools.
Improving Refactoring with Alternate Program Views. Research Proficiency Exam
, 2006
"... Abstract. Refactoring is the process of changing the structure of code without changing its behavior. Refactoring can be semi-automated with the help of tools, but many existing tools do a poor job of communicating errors triggered by the programmer. This poor communication causes programmers to ref ..."
Abstract
-
Cited by 9 (7 self)
- Add to MetaCart
Abstract. Refactoring is the process of changing the structure of code without changing its behavior. Refactoring can be semi-automated with the help of tools, but many existing tools do a poor job of communicating errors triggered by the programmer. This poor communication causes programmers to refactor slowly, conservatively, and incorrectly. In this paper, I demonstrate the problems with current refactoring tools, characterize three new alternative program views to assist in refactoring, and describe a user study that compares these new views against existing tools. The results of the study show that both the speed and accuracy of refactoring can be increased using these new views. The new views exhibit several desirable properties for future refactoring tools. 1
Breaking the barriers to successful refactoring
- In Proceedings, International Conference on Software Engineering. IEEE Computer Society
, 2008
"... Refactoring, the process of changing the structure of code without changing its behavior, can be semi-automated with the help of tools. However, many tools do a poor job of communicating errors triggered by the refactoring process. This poor communication causes programmers to refactor slowly, conse ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
Refactoring, the process of changing the structure of code without changing its behavior, can be semi-automated with the help of tools. However, many tools do a poor job of communicating errors triggered by the refactoring process. This poor communication causes programmers to refactor slowly, conservatively, and incorrectly. In this paper we demonstrate problems with current refactoring tools, characterize three new tools to assist in refactoring, and describe a user study that compares these new tools against existing tools. The results of the study show that the speed, accuracy, and user satisfaction can be significantly increased The new tools have inspired a set of usability recommendations that we hope will help build a new generation of programmer-friendly refactoring tools.
Programmer-Friendly Refactoring Tools
"... Tools that perform semi-automated refactoring are currently under-utilized by programmers. If more programmers adopted refactoring tools, software projects could make enormous productivity gains. However, as more advanced refactoring tools are designed, a great chasm widens between how the tools mus ..."
Abstract
- Add to MetaCart
Tools that perform semi-automated refactoring are currently under-utilized by programmers. If more programmers adopted refactoring tools, software projects could make enormous productivity gains. However, as more advanced refactoring tools are designed, a great chasm widens between how the tools must be used and how programmers want to use them. The proposed research will bridge this chasm by exposing usability guidelines that will direct the design of the next generation of programmer-friendly refactoring tools, so that refactoring tools fit the way programmers behave, not vice-versa. int newBalance = balance- payment; System.out.println ( newBalance); Moderately complex refactorings include Extract Method, where part of the body of a long method is replaced with a call to a new method containing the same code, and Push Up Method, where a method is moved from its subclass to a superclass. For example, these classes 1.
Drag-and-Drop Refactoring: Intuitive Program Transformation
"... Refactoring is a disciplined technique for restructuring code to improve its readability and maintainability. Almost all popular integrated development environments (IDEs), such as Eclipse, Visual Studio, and Xcode, have built-in support for semi-automated refactorings. Proponents tout that semiauto ..."
Abstract
- Add to MetaCart
Refactoring is a disciplined technique for restructuring code to improve its readability and maintainability. Almost all popular integrated development environments (IDEs), such as Eclipse, Visual Studio, and Xcode, have built-in support for semi-automated refactorings. Proponents tout that semiautomated refactorings reduce the burden of refactoring by hand. However, recent research suggests that these semiautomated refactorings are greatly underused. We argue that the current semi-automated refactoring tools are complex to use, which could be one of the causes of their underuse. In this paper, we present a novel approach that reduces this complexity by streamlining the invocation and configuration process through drag-and-drop of program elements. We implemented this approach in our tool, Drag-and-Drop Refactoring (DNDRefactoring). Currently, DNDRefactoring supports 12 of 23 refactorings in the Eclipse IDE. Empirical evaluation through surveys (69 results) and controlled user studies (11 participants) demonstrates that DNDRefactoring is intuitive and also reduces the programming effort compared to traditional methods such as menus and keyboard shortcuts.

