Rather than upgrading a software system to the next version by installing a new binary, software systems could be updated "on-thefly" during their execution. We are developing a software evolution system that leverages aspect technology. As changes typically spread across several classes, we can handle updates like other crosscutting concerns: we encapsulate all changes, constituting a logical update, in one aspect. In this paper, we evaluate our approach. We report on a case study about the evolution of a Java application. The analysis provides details about how classes change between versions, and how these changes would be expressed in terms of updating aspects. Unfortunately, not all kinds of changes can be expressed using the aspect model. The results of our study, however, reveal that many changes fit our aspect-based approach.
Susanne Cech Previtali, Thomas R. Gross