Refactoring projects
Refactoring is the process of gradually improving the design of existing code by performing behaviour-preserving program transformations. It can be done manually but most of the refactorings require tedious, error-prone manipulation of the code. Therefore, development environments now provide an automated support for applying them, for instance for renaming, extracting a method, extracting an interface, and so on.
Yet, implementing such source-to-source transformations is complex and even the most sophisticated IDEs contain bugs in their refactorings support.
In the Programming Tools Group, we aim at improving refactoring tools, by
- enabling the automation of complex refactorings,
- proving the behaviour-preserving nature of refactorings, and
- allowing developers or tool authors to easily and correclty implement their own refactorings.
Projects
- Aspect Refactoring Tools: ART
- A scripting language for refactoring: JunGL
- Refactoring via slicing: Nate
External resources
- Danny Dig's refactoring page
- Martin Fowler's catalog of refactorings
Contacts
Max Schaefer, Torbjörn Ekman , Mathieu Verbaere and Oege de Moor