2010 · 41 citations · 14 references
ComputingSystems EngineeringSoftware EngineeringSystems ProgrammingApplication Programming InterfacesApplication RefactoringData MigrationPlatform MigrationSoftware MaintenanceWeb ApisApi Lifecycle ManagementLegacy Application MigrationRuntime Migration
Evolving requirements may necessitate API migration-re-engineering an application to replace its dependence on one API with the dependence on another API for the same domain. One approach to API migration is to replace the original API by a wrapper-based re-implementation that makes reuse of the other API. Wrapper-based migration is attractive because application code is left untouched and wrappers can be reused across applications. The design of such wrappers is challenging though if the two involved APIs were developed independently, in which case the APIs tend to differ significantly. We identify the challenges faced by developers when designing wrappers for object-oriented APIs, and we recover the solutions used in practice. To this end, we analyze two large, open-source GUI wrappers and compile a set of issues pervasive in their designs. We subsequently extract design patterns from the solutions that developers used in the GUI wrappers.
14
Johannes Henkel, Amer Diwan · 2005 · 274 citations
Documenting and automating collateral evolutions in linux device drivers
Yoann Padioleau, Julia Lawall, René Rydhof Hansen et al. · 2008 · 192 citations
Mining API mapping for language migration
Hao Zhong, Suresh Thummalapenta, Tao Xie et al. · 2010 · 147 citations
Refactoring support for class library migration
Ittai Balaban, Frank Tip, Robert M. Fuhrer · 2005 · 142 citations
Semi-automatic update of applications in response to library changes
Notkin · 1996 · 126 citations