Aspect-based dynamic software updating: a model and its empirical evaluation

  • Authors:
  • Susanne Cech Previtali;Thomas R. Gross

  • Affiliations:
  • ETH Zürich, Zürich, Switzerland;ETH Zürich, Zürich, Switzerland

  • Venue:
  • Proceedings of the tenth international conference on Aspect-oriented software development
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper presents an approach to update object-oriented applications at run time. We introduce an update model that leverages aspect technology to express a software update as a modular unit. Although many updates remain encapsulated within a single method body, the nature of software updates is clearly crosscutting: Classes depend on each other, and if the interface of one class changes, all clients of the class are affected. We have designed and implemented an update analyzer that automatically compares two versions of a Java program and extracts the necessary updates expressed as aspects. As execution platform, we rely on an aspect-enabled virtual machine to weave the generated updating aspects at run time. The update analyzer uses only a small subset of the user-level services provided by the VM: around advice for method redefinitions as well as field and method pointcuts for single join-point selection. To validate our approach, we have conducted an empirical study on eight real-world Java applications whose versions encompass several years of development. The study shows that most updates (i.e., 98%) can be handled by the dynamic updating system and that most updates (i.e., 92%) can be extracted fully automatically or with only modest programmer intervention.