Automatically generating refactorings to support API evolution

Download: PDF, PostScript.

“Automatically generating refactorings to support API evolution” by Jeff H. Perkins. In ACM SIGPLAN/SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE 2005), (Lisbon, Portugal), September 5-6, 2005, pp. 111-114.


When library APIs change, client code should change in response, in order to avoid erroneous behavior, compilation failures, or warnings. Previous research has introduced techniques for generating such client refactorings. This paper improves on the previous work by proposing a novel, lightweight technique that takes advantage of information that programmers have already inserted in the code rather than forcing them to use a different tool to re-express it. The key idea is to replace calls to deprecated methods by their bodies, when those bodies consist of calls to the replacement code. This approach has several benefits. It requires no change in development practice, since programmers already adjust method bodies and/or write example code, and there are no new tools or languages to learn. It does not require distribution of new artifacts, and a tool to apply it can be lightweight. A second contribution of the paper is a programming methodology that permits non-behavior-preserving refactorings, as when correcting library errors or adjusting semantics, to be tested and applied.

Download: PDF, PostScript.

BibTeX entry:

   author = {Jeff H. Perkins},
   title = {Automatically generating refactorings to support {API} evolution},
   booktitle = {ACM SIGPLAN/SIGSOFT Workshop on Program Analysis for
	Software Tools and Engineering (PASTE 2005)},
   pages = {111--114},
   address = {Lisbon, Portugal},
   month = {September~5--6,},
   year = {2005}

(This webpage was created with bibtex2web.)

Back to Program Analysis Group publications.