An initial assessment of aspect-oriented programming

R. Walker, E. Baniassad, G. Murphy
{"title":"An initial assessment of aspect-oriented programming","authors":"R. Walker, E. Baniassad, G. Murphy","doi":"10.1145/302405.302458","DOIUrl":null,"url":null,"abstract":"The principle of separation of concerns (E. Dijkstra, 1976) has long been used by software engineers to manage the complexity of software system development. Programming languages help software engineers explicitly maintain the separation of some concerns in code. As another step towards increasing the scope of concerns that can be captured cleanly within the code, G. Kiczales et al. (1997) have introduced aspect oriented programming. In aspect oriented programming, explicit language support is provided to help modularize design decisions that cross-cut a functionally decomposed program. Aspect oriented programming is intended to make it easier to reason about, develop, and maintain certain kinds of application code. To investigate these claims, we conducted two exploratory experiments that considered the impact of aspect oriented programming, as found in AspectJ version 0.1, on two common programming activities: debugging and change. Our experimental results provide insights into the usefulness and usability of aspect oriented programming. Our results also raise questions about the characteristics of the interface between aspects and functionally decomposed core code that are necessary to accrue programming benefits. Most notably, the separation provided by aspect oriented programming seems most helpful when the interface is narrow (i.e., the separation is more complete); partial separation does not necessarily provide partial benefit.","PeriodicalId":359367,"journal":{"name":"Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002)","volume":"2 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1999-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"195","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/302405.302458","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 195

Abstract

The principle of separation of concerns (E. Dijkstra, 1976) has long been used by software engineers to manage the complexity of software system development. Programming languages help software engineers explicitly maintain the separation of some concerns in code. As another step towards increasing the scope of concerns that can be captured cleanly within the code, G. Kiczales et al. (1997) have introduced aspect oriented programming. In aspect oriented programming, explicit language support is provided to help modularize design decisions that cross-cut a functionally decomposed program. Aspect oriented programming is intended to make it easier to reason about, develop, and maintain certain kinds of application code. To investigate these claims, we conducted two exploratory experiments that considered the impact of aspect oriented programming, as found in AspectJ version 0.1, on two common programming activities: debugging and change. Our experimental results provide insights into the usefulness and usability of aspect oriented programming. Our results also raise questions about the characteristics of the interface between aspects and functionally decomposed core code that are necessary to accrue programming benefits. Most notably, the separation provided by aspect oriented programming seems most helpful when the interface is narrow (i.e., the separation is more complete); partial separation does not necessarily provide partial benefit.
对面向方面编程的初步评估
关注分离原则(E. Dijkstra, 1976)一直被软件工程师用来管理软件系统开发的复杂性。编程语言帮助软件工程师显式地维护代码中某些关注点的分离。G. Kiczales等人(1997)引入了面向方面的编程,作为增加可在代码中清晰捕获的关注点范围的另一个步骤。在面向方面的编程中,提供了显式语言支持,以帮助模块化设计决策,从而横切功能分解的程序。面向方面编程的目的是使推理、开发和维护某些类型的应用程序代码变得更容易。为了调查这些说法,我们进行了两个探索性实验,考虑了面向方面编程(如在AspectJ版本0.1中发现的)对两个常见编程活动的影响:调试和更改。我们的实验结果提供了对面向方面编程的有用性和可用性的见解。我们的结果还提出了关于方面和功能分解的核心代码之间的接口特征的问题,这些特征对于获得编程好处是必要的。最值得注意的是,面向方面编程提供的分离似乎在接口较窄时最有用(即,分离更完整);部分分离不一定带来部分好处。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约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学术官方微信