the 3rd acm workshop on refactoring tools (wrt'09)
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. Until recently, there has not been a suitable forum for discussions among researchers and developers of such tools. Our prior refactoring tools workshops (initially at ECOOP 2007, then at OOPSLA 2008) clearly met a need, and there was strong interest expressed in holding a follow-on workshop. This workshop features both presentations given by developers and researchers in the field of refactoring, as well as demonstrations of practical refactoring tools.
refactoring transformation program analysis program manipulation