aspect-oriented programming

Also found in: Wikipedia.

aspect-oriented programming

(AOP) A style of programming that attempts to abstract out features common to many parts of the code beyond simple functional modules and thereby improve the quality of software.

Mechanisms for defining and composing abstractions are essential elements of programming languages. The design style supported by the abstraction mechanisms of most current languages is one of breaking a system down into parameterised components that can be called upon to perform a function.

But many systems have properties that don't necessarily align with the system's functional components, such as failure handling, persistence, communication, replication, coordination, memory management, or real-time constraints, and tend to cut across groups of functional components.

While they can be thought about and analysed relatively separately from the basic functionality, programming them using current component-oriented languages tends to result in these aspects being spread throughout the code. The source code becomes a tangled mess of instructions for different purposes.

This "tangling" phenomenon is at the heart of much needless complexity in existing software systems. A number of researchers have begun working on approaches to this problem that allow programmers to express each of a system's aspects of concern in a separate and natural form, and then automatically combine those separate descriptions into a final executable form. These approaches have been called aspect-oriented programming.

Xerox AOP homepage.


ECOOPP'99 AOP workshop.
References in periodicals archive ?
From using BroadCast Receiver to update an Activity to aspect-oriented programming tips, this is packed with excellent insights any Android programmer simply must have
As a research scientist at Xerox PARC, Mik implemented the first aspect-oriented programming tools for AspectJ.
Improving Modularity of Reflective Middleware with Aspect-Oriented Programming.
Eclipse Aspect J: Aspect-Oriented Programming with AspectJ and the Eclipse AspectJ Development Tools, Addison-Wesley Professional.
The most characteristic features of Spring framework are the inversion of control, aspect-oriented programming, data access, transaction management, and remote access (Rubio, 2009).
Using aspect-oriented programming for trustworthy software development.
Aspect-Oriented Programming, Proceedings of the European Conference on Object-Oriented Programming (ECOOP), Springer-Verlag LNCS 1241.
In this work, we describe several characteristics between reflective meta-programming techniques and the new capabilities offered by aspect-oriented programming.
This paper presents the fundamentals of Aspect-Oriented Programming (AOP).
com/research/03ab54/using_aspectorien) has announced the addition of the "Using Aspect-Oriented Programming for Trustworthy Software Development" report to their offering.
Aspect-oriented programming (AOP) [33] is a methodology that emerged with the aim to separate crosscutting concerns.
Handlers resemble aspect-oriented programming (AOP) [2], where attached method objects may be viewed as advices.