Aspect-oriented programming with adaptive methods

  title={Aspect-oriented programming with adaptive methods},
  author={Karl J. Lieberherr and Doug Orleans and Johan Ovlinger},
  journal={Commun. ACM},
A An operation in an object-oriented program often involves several different collaborating classes. There are usually two ways to implement such an operation: either put the whole operation into one method on one of the classes, or divide the operation into methods on each of the classes involved. The drawback of the former is that too much information about the structure of the classes (is-a and has-a relationships) needs to be tangled into each such method, making it difficult to adapt to… 
Making Patterns Explicit with Metaprogramming
The method presented has benefits compared to traditional approaches with respect to documentation and reusability of the program, as well as providing a better of the protocol contained in the pattern.
Language-independent aspect-oriented programming
The term aspect-oriented programming (AOP) has come to describe the set of programming mechanisms developed specifically to express crosscutting concerns, which are composed, or woven, with traditionally encapsulated functionality referred to as components.
Components + Aspects: A General Overview
The main goal of this paper is to analise the different proposals to bridge the gap between components and aspects to improve the improvement of systems’ decomposition.
Unifying aspect- and object-oriented program design
It is shown that aspects as a separate abstraction mechanism are not essential to aspect-oriented programming, and instead a new construct, quantified binding, similar to the event-handler binding in the implicit invocation style, is at the core of aspect- oriented programming.
Coupling Aspect-Oriented and Adaptive Programming
This chapter compares AOP and AP and discusses their integration, and shows the benefits of the integration are: better support for ubiquitous traversal-related concerns and betterSupport for shy aspect-oriented programming.
in Aspect-Oriented Programming
A dataflow-based pointcut is proposed for aspect-oriented programming (AOP) languages and designed to be compatible with the other kinds of pointcuts in existing AOP languages.
A Generative Approach to Aspect-Oriented Programming
A way to express cross-cutting features as logical invariants and to use generative techniques to produce the kind of code that is usually written manually in AOSD is presented.
A Survey on Regression Test Selection Techniques on Aspect-Oriented Programming
This paper proposes the techniques used for object oriented programs and for aspect oriented programming, and proposes the Selection technique used which eliminates the redundant test cases and thus makes them cost effective.
A technique for constructing aspect weavers using a program transformation engine
This paper describes the experience with using a program transformation system as the underlying engine for weaver construction and describes an initial approach for construction of language-independent aspect weavers.
Aspect-Oriented Programming: An Historical Perspective (What's in a Name?)
In this article I will give my own account of how AOP – the ideas, the technologies and the name – came to be.


Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns
This ground-breaking book presents a complete methodology for adaptive programming in any object-oriented programming language, and signals a new approach to object- oriented program design that goes beyond object encapsulation and hard-coded navigation paths to achieve more flexible interactions among objects.
An Overview of AspectJ
AspectJ provides support for modular implementation of a range of crosscutting concerns, and simple extensions to existing Java development environments make it possible to browse the crosscutting structure of aspects in the same kind of way as one browses the inheritance structure of classes.
The Unified Modeling Language User Guide
In The Unified Modeling Language User Guide, the original developers of the UML provide a tutorial to the core aspects of the language in a two-color format designed to facilitate learning.
Doug Orleans ( is a Ph
  • D. student at Northeastern University
Karl Lieberherr ( is Professor of
  • Computer Science at Northeastern University
Research supported by Defense Advanced Research Projects Agency under agreement F33615-00-C-1694
  • Research supported by Defense Advanced Research Projects Agency under agreement F33615-00-C-1694
Johan Ovlinger ( is a Ph.D. student at Northeastern University in Boston and a researcher with SKYVA International in Medford
  • Johan Ovlinger ( is a Ph.D. student at Northeastern University in Boston and a researcher with SKYVA International in Medford