|
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.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
| |
2
|
M. Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999. ISBN 0-201-48567-2.
|
| |
3
|
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patters. Addison-Wesley, 1995.
|
| |
4
|
|
| |
5
|
|
 |
6
|
|
| |
7
|
|
| |
8
|
|
CITED BY 32
|
|
Peter Weißgerber , Stephan Diehl , Carsten Görg, An interactive visualization of refactorings retrieved from software archives, Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 16-20, 2005, San Diego, CA, USA
|
|
|
|
|
|
|
|
|
Danny Dig, Using refactorings to automatically update component-based applications, Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 16-20, 2005, San Diego, CA, USA
|
|
|
Danny Dig, Using refactorings to automatically update component-based applications, Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 16-20, 2005, San Diego, CA, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Danny Dig , Tien N. Nguyen , Kashif Manzoor , Ralph Johnson, MolhadoRef: a refactoring-aware software configuration management tool, Companion to the 21st ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, October 22-26, 2006, Portland, Oregon, USA
|
|
|
Yoann Padioleau , René Rydhof Hansen , Julia L. Lawall , Gilles Muller, Semantic patches for documenting and automating collateral evolutions in Linux device drivers, Proceedings of the 3rd workshop on Programming languages and operating systems: linguistic support for modern operating systems, p.10-es, October 22-22, 2006, San Jose, California
|
|
|
Danny Dig , Ralph Johnson, Automated upgrading of component-based applications, Companion to the 21st ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, October 22-26, 2006, Portland, Oregon, USA
|
|
|
|
|
|
Danny Dig , Kashif Manzoor , Tien N. Nguyen , Ralph Johnson, MolhadoRef: a refactoring-aware infrastructure for OO programs, Proceedings of the 2006 OOPSLA workshop on eclipse technology eXchange, p.25-29, October 22-23, 2006, Portland, Oregon
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Peter Ebraert , Jorge Vallejos , Pascal Costanza , Ellen Van Paesschen , Theo D'Hondt, Change-oriented software engineering, Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007, August 25-31, 2007, Lugano, Switzerland
|
|
|
|
|
|
|
|
|
|
|
|
Ilie Şavga , Michael Rudolf , Sebastian Götz , Uwe Aßmann, Practical refactoring-based framework upgrade, Proceedings of the 7th international conference on Generative programming and component engineering, October 19-23, 2008, Nashville, TN, USA
|
|