WG211/M9Bartolomei
Migration of Applications across Object-Oriented APIs
Thiago Tonelli Bartolomei
Evolving requirements may necessitate API migration: re-engineering an application to replace its dependence on one API with dependencies on another API for the same domain. In this talk we give an overview of our efforts towards mastering API migration for object-oriented APIs. We start with the results of case studies we conducted on applying a wrapping approach to API migration in practice. We show that wrappers around realistic object-oriented APIs must account for their deep inheritance hierarchies, various multiplicities of type mappings and other non-trivial API mismatches. We follow with our current work on Pitta, a domain specific language for API migration. Pitta's main goals are to support developers in uncovering and managing API mismatches, to free developers from error-prone boilerplate wrapping code, and to enable client application analyses to be derived from the specifications. All that while still looking familiar to regular developers (Pitta constructs are implemented on top of Java). Finally, we describe our plans for applying Pitta as a transformation specification and skim through the challenges that lie ahead.