Semi-automatic update of applications in response to library changes
ICSM '96 Proceedings of the 1996 International Conference on Software Maintenance
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
A Case Study in Software Wrapping
ICSM '98 Proceedings of the International Conference on Software Maintenance
An Approach to support Web Service Classification and Annotation
EEE '05 Proceedings of the 2005 IEEE International Conference on e-Technology, e-Commerce and e-Service (EEE'05) on e-Technology, e-Commerce and e-Service
Architectural modifications to deployed software
Science of Computer Programming
CatchUp!: capturing and replaying refactorings to support API evolution
Proceedings of the 27th international conference on Software engineering
Refactoring support for class library migration
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Automatically generating refactorings to support API evolution
PASTE '05 Proceedings of the 6th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Automated detection of api refactorings in libraries
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Journal of Systems and Software
Documenting and automating collateral evolutions in linux device drivers
Proceedings of the 3rd ACM SIGOPS/EuroSys European Conference on Computer Systems 2008
ReBA: refactoring-aware binary adaptation of evolving libraries
Proceedings of the 30th international conference on Software engineering
Enriching Reverse Engineering with Annotations
MoDELS '08 Proceedings of the 11th international conference on Model Driven Engineering Languages and Systems
Evaluating the Reference and Representation of Domain Concepts in APIs
ICPC '08 Proceedings of the 2008 The 16th IEEE International Conference on Program Comprehension
Practical refactoring-based framework upgrade
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
A foundation for flow-based program matching: using temporal logic and model checking
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Revealing the X/O impedance mismatch: changing lead into gold
SSDGP'06 Proceedings of the 2006 international conference on Datatype-generic programming
A domain-specific modeling language for scientific data composition and interoperability
Proceedings of the 48th Annual Southeast Regional Conference
Large-scale, AST-based API-usage analysis of open-source Java projects
Proceedings of the 2011 ACM Symposium on Applied Computing
Revisiting information hiding: reflections on classical and nonclassical modularity
Proceedings of the 25th European conference on Object-oriented programming
Extracting models from web API documentation
ICWE'12 Proceedings of the 12th international conference on Current Trends in Web Engineering
Exposing behavioral differences in cross-language API mapping relations
FASE'13 Proceedings of the 16th international conference on Fundamental Approaches to Software Engineering
Hi-index | 0.00 |
API migration refers to adapting an application such that its dependence on a given API (the source API) is eliminated in favor of depending on an alternative API (the target API) with the source and target APIs serving the same domain. One may attempt to automate API migration by code transformation or wrapping of some sort. API migration is relatively well understood for the special case where source and target APIs are essentially different versions of the same API. API migration is much less understood for the general case where the two APIs have been developed more or less independently of each other. The present paper exercises a simple instance of the general case and develops engineering techniques towards the mastery of API migration. That is, we study wrapper-based migration between two prominent XML APIs for the Java platform. The migration follows an iterative and test-driven approach and allows us to identify, classify, and measure various differences between the studied APIs in a systematic way.