Managing the Evolution of Aspect-Oriented Software with Model-based Pointcuts

Authors
Andy Kellens, Kim Mens, Johan Brichau, Kris Gybels
Tags
,
Title
Managing the Evolution of Aspect-Oriented Software with Model-based Pointcuts
Authors
Andy Kellens, Kim Mens, Johan Brichau, Kris Gybels
 AspectualViews.pdf Δ   377Kb   19 Oct 2011
Type
In Proceedings
Book title
Proceedings of the European Conference on Object-Oriented Programming (ECOOP 2006)
Volume
LNCS 4067
Pages
501-525
Publisher
Springer-Verlag
Editor
Dave Thomas
Year
2006

Abstract

In spite of the more advanced modularisation mechanisms, aspect-oriented programs still suffer from evolution problems. Due to the fragile pointcut problem, seemingly safe modifications to the base code of an aspect-oriented program can have an unexpected impact on the semantics of the pointcuts defined in that program. This can lead to broken aspect functionality due to accidental join point misses and unintended join point captures. We tackle this problem by declaring pointcuts in terms of a conceptual model of the base program, rather than defining them directly in terms of how the base program is structured. As such, we achieve an effective decoupling of the pointcuts from the base programís structure. In addition, the conceptual model provides a means to verify where and why potential fragile pointcut conflicts occur, by imposing structural and semantic constraints on the conceptual model, that can be verified when the base program evolves. To validate our approach we implemented a model-based pointcut mechanism, which we used to define some aspects on SmallWiki, a medium-sized application, and subsequently detected and resolved occurrences of the fragile pointcut problem when this application evolved.

Tags Tags: ,


BibTeX Record
  @inproceedings{RELEASeD-2006-396448,
    title = {Managing the Evolution of Aspect-Oriented Software with Model-based Pointcuts},
    author = {Andy Kellens and Kim Mens and Johan Brichau and Kris Gybels},
    year = {2006},
    volume = {LNCS 4067},
    pages =  {501-525},
    booktitle = {Proceedings of the European Conference on Object-Oriented Programming (ECOOP 2006)},
    publisher = {Springer-Verlag},
    editor = {Dave Thomas},
  }