Modular aspect-oriented design rule enforcement with XPIDRs

  • Authors:
  • Henrique Rebelo;Gary T. Leavens;Ricardo Massa Ferreira Lima;Paulo Borba;Márcio Ribeiro

  • Affiliations:
  • Federal University of Pernambuco, Recife, Brazil;University of Central Florida, Orlando, FL, USA;Federal University of Pernambuco, Recife, Brazil;Federal University of Pernambuco, Recife, Brazil;Federal University of Alagoas, Maceio, Brazil

  • Venue:
  • Proceedings of the 12th workshop on Foundations of aspect-oriented languages
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

Aspect-oriented programming (AOP) is a popular technique for modularizing crosscutting concerns. However, constructs aimed at supporting crosscutting modularity may break class modularity. For example, to understand a method call may require a whole-program analysis to determine what advice applies and what that advice does. Moreover, in AspectJ, advice is coupled to the parts of the program advised, the base code, so the meaning of advice may change when the base code changes. Such coupling also hinders parallel development between base code and aspects. We propose some simple modifications to the design of crosscut programming interfaces (XPIs) to include expressive design rule specifications. We call our form of XPIs crosscutting programming interfaces with design rules (XPIDRs). The XPIDR-based approach, by design, supports modular runtime checking and parallel development by decoupling aspects from base code. We also show how XPIDRs allow specification of interesting control flow effects, such as when advice does (or does not) proceed. We have implemented XPIDRs as a simple contract extension to AspectJ. Since XPIDRs do not require any new AspectJ constructs, they can be adopted easily by the AspectJ community.