Refactoring for generalization using type constraints

Download: PDF.

“Refactoring for generalization using type constraints” by Frank Tip, Adam Kieżun, and Dirk Bäumer. In Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2003), (Anaheim, CA, USA), November 6-8, 2003, pp. 13-26.


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

Download: PDF.

BibTeX entry:

   author = {Frank Tip and Adam Kie{\.z}un and Dirk B{\"a}umer},
   title = {Refactoring for generalization using type constraints},
   booktitle = {Object-Oriented Programming Systems, Languages, and
	Applications (OOPSLA 2003)},
   pages = {13--26},
   address = {Anaheim, CA, USA},
   month = {November~6--8,},
   year = {2003}

(This webpage was created with bibtex2web.)

Back to Program Analysis Group publications.