Title :
CatchUp! Capturing and replaying refactorings to support API evolution
Author :
Henkel, Johannes ; Diwan, Amer
Author_Institution :
Colorado Univ., Boulder, CO, USA
Abstract :
Library developers who have to evolve a library to accommodate changing requirements often face a dilemma: Either they implement a clean, efficient solution but risk breaking client code, or they maintain compatibility with client code, but pay with increased design complexity and thus higher maintenance costs over time. We address this dilemma by presenting a lightweight approach for evolving application programming interfaces (APIs), which does not depend on version control or configuration management systems. Instead, we capture API refactoring actions as a developer evolves an API. Users of the API can then replay the refactorings to bring their client software components up to date. We present CatchUp!, an implementation of our approach that captures and replays refactoring actions within an integrated development environment semi-automatically. Our experiments suggest that our approach could be valuable in practice.
Keywords :
application program interfaces; computer aided software engineering; programming environments; software libraries; software maintenance; API evolution; API refactoring; application programming interfaces; integrated development environment; software library development; Application software; Control systems; Costs; Java; Lighting control; Permission; Software engineering; Software libraries; Software maintenance; Software reusability;
Conference_Titel :
Software Engineering, 2005. ICSE 2005. Proceedings. 27th International Conference on
Print_ISBN :
1-59593-963-2
DOI :
10.1109/ICSE.2005.1553570