Managing the evolution of aspect-oriented software with model-based pointcuts

  • Authors:
  • Andy Kellens;Kim Mens;Johan Brichau;Kris Gybels

  • Affiliations:
  • Programming Technology Lab, Vrije Universiteit Brussel, Belgium;Département d'Ingénierie Informatique, Université catholique de Louvain, Belgium;Programming Technology Lab, Vrije Universiteit Brussel, Belgium;Programming Technology Lab, Vrije Universiteit Brussel, Belgium

  • Venue:
  • ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

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.