Title
Modular Aspect-Oriented Design Rule Enforcement With Xpidrs
Keywords
Aspect-oriented programming; Aspectj language; Design rules; JML language; Runtime assertion checking
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. Copyright © 2013 ACM.
Publication Date
4-15-2013
Publication Title
FOAL 2013 - Proceedings of the 12th Workshop on Foundations of Aspect-Oriented Languages
Number of Pages
13-17
Document Type
Article; Proceedings Paper
Personal Identifier
scopus
DOI Link
https://doi.org/10.1145/2451598.2451603
Copyright Status
Unknown
Socpus ID
84875976500 (Scopus)
Source API URL
https://api.elsevier.com/content/abstract/scopus_id/84875976500
STARS Citation
Rebêlo, Henrique; Leavens, Gary T.; Lima, Ricardo; Borba, Paulo; and Ribeiro, Ḿarcio, "Modular Aspect-Oriented Design Rule Enforcement With Xpidrs" (2013). Scopus Export 2010-2014. 6872.
https://stars.library.ucf.edu/scopus2010/6872