Refactoring is the process of applying behavior-preserving transformations to a program with the objective of improving the program's design. A specific refactoring is identified by a name (e.g., Extract Method), a set of preconditions, and a set of specific transformations that need to be performed. Tool support for refactoring is highly desirable because checking the preconditions for a given refactoring often requires nontrivial program analysis, and applying the transformations may affect many locations throughout a program. In recent years, the emergence of light-weight programming methodologies such as Extreme Programming has generated a great amount of interest in refactoring, and refactoring support has become a required feature in modern-day IDEs.
Proceeding Downloads
What kind of and how clones are refactored?: a case study of three OSS projects
Although code clone (i.e. a code fragment that has similar or identical fragments) is regarded as one of the most typical bad smells, tools for identification of clone refactoring (i.e. merge code clones into a single method) are not commonly used. To ...
Integration of smells and refactorings within the Eclipse modeling framework
Models are primary artifacts in model-based, and especially, in model-driven software development processes. Therefore, software quality and quality assurance frequently leads back to the quality and quality assurance of the involved models. In our ...
An approach and tool for synchronous refactoring of UML diagrams and models using model-to-model transformations
When refactorings are applied to software models that are specified using the Unified Modeling Language (UML), the actual model and the graphical presentation of the model using a diagram need to be distinguished. While UML refactoring tools exist, they ...
Computation of refactoring plans from refactoring strategies using HTN planning
Complex refactoring processes, such as applying big refactorings or removing design smells are difficult to perform in practice. The complexity of these processes is partly due to their heuristic nature and to the constraints imposed by preconditions on ...
Let's make refactoring tools user-extensible!
We present a framework for making a refactoring tool extensible, allowing users to define refactorings from scratch using the concrete syntax of the language, as well as to describe complex refactorings in a domain-specific language for scripting. We ...
Scripting a refactoring with Rascal and Eclipse
To facilitate experimentation with creating new, complex refactorings, we want to reuse existing transformation and analysis code as orchestrated parts of a larger refactoring: i.e., to script refactorings. The language we use to perform this scripting ...
Identifying extract-method refactoring candidates automatically
Refactoring becomes an essential activity in software development process especially for large and long life projects. Extract-method is one of the most frequently used refactorings to address code smells such as long and incohesive methods, and ...
A language-independent parallel refactoring framework
Recent trends towards increasingly parallel computers mean that there needs to be a seismic shift in programming practice. The time is rapidly approaching when most programming will be for parallel systems. However, most programming techniques in use ...
Refactoring tools for dynamic languages
Dynamic languages play an increasingly prominent role in modern software development. They are used in domains as diverse as web programming and scientific computing, for developing simple scripts as well as large applications.
Tool-supported ...
Custom declarative refactoring in NetBeans: tool demonstration
In this paper, we briefly describe NetBeans' custom refactoring feature, its history and possible evolution. We will also mention some of the pain points that we ran into while this feature and its parts have been developed and moved into the ...
Refactoring development simplified: demonstration
In this paper we briefly describe a new Java Refactoring API to simplify development.
Index Terms
Proceedings of the Fifth Workshop on Refactoring Tools
Recommendations
Fourth workshop on refactoring tools (WRT 2011)
ICSE '11: Proceedings of the 33rd International Conference on Software EngineeringRefactoring is the process of applying behavior-preserving transformations to a program with the objective of improving the program's design. A specific refactoring is identified by a name (e.g., Extract Method), a set of preconditions, and a set of ...
The 2nd workshop on refactoring tools (WRT'08)
OOPSLA Companion '08: Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applicationsRefactoring is the process of applying behavior-preserving transformations to a program with the objective of improving the program's design. A specific refactoring is identified by a name (e.g., Extract Method), a set of preconditions, and a set of ...
The 3rd ACM workshop on refactoring tools (WRT'09)
OOPSLA '09: Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applicationsRefactoring is the process of applying behavior-preserving transformations to a program with the objective of improving the program's design. A specific refactoring is identified by a name (e.g., Extract Method), a set of preconditions, and a set of ...
Acceptance Rates
| Year | Submitted | Accepted | Rate |
|---|---|---|---|
| WRT '13 | 9 | 9 | 100% |
| Overall | 9 | 9 | 100% |



