Refactoring for Generalization using Type Constraints
Refactoring is the process of applying behavior-preserving transformations
(called "refactorings") in order to improve a program's design.
Associated with a refactoring is a set of preconditions that
must be satisfied to guarantee that program behavior
is preserved, and a set of source code modifications.
An important category of refactorings is concerned with generalization
(e.g., Extract Interface} for re-routing the access to a class
via a newly created interface, and Pull Up Members for moving members
into a superclass).
For these refactorings, both the preconditions and the set of allowable
source code modifications depend on interprocedural relationships between
types of variables.
We present an approach in which type constraints are used to
verify the preconditions and to determine the allowable source code modifications
for a number of generalization-related refactorings.
This work is implemented in the standard distribution of Eclipse
(see www.eclipse.org).
[ Research home page ]
[ IBM home page |
Order |
Search |
Contact IBM |
Legal ]