Practical refactoring-based framework upgrade

  • Authors:
  • Ilie Şavga;Michael Rudolf;Sebastian Götz;Uwe Aßmann

  • Affiliations:
  • Institut für Software- und Multimediatechnologie, Technische Universität Dresden, Dresden, Germany;Institut für Software- und Multimediatechnologie, Technische Universität Dresden, Dresden, Germany;Institut für Software- und Multimediatechnologie, Technische Universität Dresden, Dresden, Germany;Institut für Software- und Multimediatechnologie, Technische Universität Dresden, Dresden, Germany

  • Venue:
  • GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Although the API of a software framework should stay stable, in practice it often changes during maintenance. When deploying a new framework version such changes may invalidate plugins - modules that used one of its previous versions. While manual plugin adaptation is expensive and error-prone, automatic adaptation demands cumbersome specifications, which the developers are reluctant to write and maintain. Basing on the history of structural framework changes (refactorings), in our previous work we formally defined how to automatically derive an adaptation layer that shields plugins from framework changes. In this paper we make our approach practical. Two case studies of unconstrained API evolution show that our approach scales in a large number of adaptation scenarios and comparing to other adaptation techniques. The evaluation of our logic-based tool ComeBack! demonstrates that it can adapt efficiently most of the problem-causing API refactorings.