Affiliation:
1. University of Virginia, Charlottesville, VA
2. UC San Diego, La Jolla, CA
Abstract
The growing popularity of aspect-oriented languages, such as AspectJ, and of corresponding design approaches, makes it important to learn how best to modularize programs in which aspect-oriented composition mechanisms are used. We contribute an approach to information hiding modularity in programs that use
quantified advising
as a module composition mechanism. Our approach rests on a new kind of interface: one that abstracts a crosscutting behavior, decouples the design of code that advises such a behavior from the design of the code to be advised, and that can stipulate behavioral contracts. Our interfaces establish
design rules
that govern how specific points in program execution are exposed through a given join point model and how conforming code on either side should behave. In a case study of the HyperCast overlay network middleware system, including a real options analysis, we compare the widely cited
oblivious
design approach with our own, showing significant weaknesses in the former and benefits in the latter.
Publisher
Association for Computing Machinery (ACM)
Reference25 articles.
1. Open Modules: Modular Reasoning About Advice
2. AspectJ project. http://www.eclipse.org/aspectj/. AspectJ project. http://www.eclipse.org/aspectj/.
3. Aspect-oriented programming
Cited by
11 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. On decomposing a deep neural network into modules;Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering;2020-11-07
2. Modular Reasoning in the Presence of Event Subtyping;Lecture Notes in Computer Science;2016
3. Bibliography;Service Orchestration As Organization;2014
4. Resolving cyclic dependencies between packages with enriched dependency structural matrix;Software: Practice and Experience;2012-11-20
5. Domain-Driven Discovery of Stable Abstractions for Pointcut Interfaces;Transactions on Aspect-Oriented Software Development IX;2012