Program restructuring as an aid to software maintenance
Program restructuring as an aid to software maintenance
Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
A refactoring tool for Smalltalk
Theory and Practice of Object Systems - Special issue object-oriented software evolution and re-engineering
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Proceedings of the thirty-first SIGCSE technical symposium on Computer science education
Practical analysis for refactoring
Practical analysis for refactoring
DrScheme: a programming environment for Scheme
Journal of Functional Programming
Star diagram with automated refactorings for Eclipse
eclipse '05 Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange
Improving usability of refactoring tools
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Improving Usability of Software Refactoring Tools
ASWEC '07 Proceedings of the 2007 Australian Software Engineering Conference
High velocity refactorings in Eclipse
Proceedings of the 2007 OOPSLA workshop on eclipse technology eXchange
How we refactor, and how we know it
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Perspectives on automated correction of bad smells
Proceedings of the joint international and annual ERCIM workshops on Principles of software evolution (IWPSE) and software evolution (Evol) workshops
Gathering refactoring data: a comparison of four methods
Proceedings of the 2nd Workshop on Refactoring Tools
Re-approaching the refactoring Rubicon
Proceedings of the 2nd Workshop on Refactoring Tools
Refactoring references for library migration
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
CodePad: interactive spaces for maintaining concentration in programming environments
Proceedings of the 5th international symposium on Software visualization
A visualization method of program dependency graph for identifying extract method opportunity
Proceedings of the 4th Workshop on Refactoring Tools
Understanding the longevity of code smells: preliminary results of an explanatory survey
Proceedings of the 4th Workshop on Refactoring Tools
Refactoring Java programs for flexible locking
Proceedings of the 33rd International Conference on Software Engineering
The need for richer refactoring usage data
Proceedings of the 3rd ACM SIGPLAN workshop on Evaluation and usability of programming languages and tools
Reconciling manual and automatic refactoring
Proceedings of the 34th International Conference on Software Engineering
WitchDoctor: IDE support for real-time auto-completion of refactorings
Proceedings of the 34th International Conference on Software Engineering
Use, disuse, and misuse of automated refactorings
Proceedings of the 34th International Conference on Software Engineering
Drag-and-drop refactoring: intuitive and efficient program transformation
Proceedings of the 2013 International Conference on Software Engineering
SPAPE: A semantic-preserving amorphous procedure extraction method for near-miss clones
Journal of Systems and Software
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
A compositional paradigm of automating refactorings
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
A comparative study of manual and automated refactorings
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Hi-index | 0.00 |
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.