Bitte wählen Sie ihr Lieferland und ihre Kundengruppe
This thesis elaborates on an adaptation technology that supports binary backward-compatible framework upgrade where existing plugins link and run with the new framework release without recompiling. To protect existing plugins from API changes, binary adapters are created that constitute an adaptation layer placed between plugins of an old version and the upgraded framework. From the point of view of an existing plug-in, the adaptation layer looks like the original framework (before the API changes), while from the point of view of the framework the adaptation layer looks like the updated plug-in. Via the adaptation layer, plug-ins may invoke the improved functionality of the upgraded framework, while the framework may call back functionality of existing plug-ins. Most adapters of the adaptation layer can be created automatically basing on the history of API changes. This automation is inspired by several case studies of API evolution, reporting that most application-breaking evolutionary API changes of software components are refactorings - behavior-preserving program transformations. Since refactorings have formally defined semantics, it is precisely known how they change framework APIs and, in case of application-breaking API refactorings, can formally define adaptation actions. In particular, it is relied on the semantics of application-breaking API refactorings to automatically derive compensating binary adapters in the adaptation tool ComeBack!. The tool evaluation shows that most application-breaking API refactorings can be addressed automatically, and that the performance overhead implied by adapters is acceptable in a large number of adaptation scenarios.