Modular aspect-oriented design rule enforcement with XPIDRs

Henrique Rebêlo, Gary T. Leavens, R. Lima, Paulo Borba, Márcio Ribeiro
{"title":"Modular aspect-oriented design rule enforcement with XPIDRs","authors":"Henrique Rebêlo, Gary T. Leavens, R. Lima, Paulo Borba, Márcio Ribeiro","doi":"10.1145/2451598.2451603","DOIUrl":null,"url":null,"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.","PeriodicalId":245301,"journal":{"name":"Workshop on Foundations of Aspect-Oriented Languages","volume":"213 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2013-03-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"10","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Workshop on Foundations of Aspect-Oriented Languages","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2451598.2451603","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 10

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.
使用xpidr实现模块化面向方面的设计规则
面向方面编程(AOP)是模块化横切关注点的一种流行技术。然而,旨在支持横切模块化的构造可能会破坏类的模块化。例如,为了理解方法调用,可能需要对整个程序进行分析,以确定应用了什么通知以及该通知做了什么。此外,在AspectJ中,通知与被通知的程序部分(即基代码)耦合在一起,因此当基代码更改时,通知的含义可能会更改。这种耦合也阻碍了基本代码和方面之间的并行开发。我们建议对横切编程接口(xpi)的设计进行一些简单的修改,以包含表达性设计规则规范。我们将这种xpi形式称为带有设计规则的横切编程接口(xpidr)。基于xpidr的方法在设计上支持模块化运行时检查,并通过将方面与基本代码解耦来支持并行开发。我们还将展示xpidr如何允许指定有趣的控制流效果,例如何时执行通知(或不执行通知)。我们已经将xpidr实现为AspectJ的简单契约扩展。由于xpidr不需要任何新的AspectJ构造,因此可以很容易地被AspectJ社区采用。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信