How do APIs evolve? A story of refactoring

Authors

  • Danny Dig,

    Corresponding author
    1. Department of Computer Science, University of Illinois at Urbana-Champaign, 201 N Goodwin Avenue, Urbana, IL 61801, U.S.A.
    • Department of Computer Science, University of Illinois, 201 N Goodwin Avenue, Urbana, IL 61801, U.S.A.
    Search for more papers by this author
  • Ralph Johnson

    1. Department of Computer Science, University of Illinois at Urbana-Champaign, 201 N Goodwin Avenue, Urbana, IL 61801, U.S.A.
    Search for more papers by this author

Abstract

Frameworks and libraries change their APIs. Migrating an application to the new API is tedious and disrupts the development process. Although some tools and ideas have been proposed to solve the evolution of APIs, most updates are done manually. To better understand the requirements for migration tools, we studied the API changes of four frameworks and one library. We discovered that the changes that break existing applications are not random, but tend to fall into particular categories. Over 80% of these changes are refactorings. This suggests that refactoring-based migration tools should be used to update applications. Copyright © 2006 John Wiley & Sons, Ltd.

Ancillary