aspect-oriented programming

(redirected from Aspect Oriented Programming)
Also found in: Acronyms.

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.
This article is provided by FOLDOC - Free Online Dictionary of Computing (
Mentioned in ?
References in periodicals archive ?
In this section, we recall some basic notions about discrete event simulation and the aspect oriented programming paradigm.
The aspect oriented programming paradigm introduced by Cristina Lopes and Gregor Kiczales in 1996 as one of the most powerful paradigm as generative programming, meta-programming, reflective programming, compositional filtering, adaptive programming, subject-oriented programming, and intentional programming that emerged to cover the weakness of the object oriented paradigm to satisfy the separation of concerns principle (SOC) [5].
JBoss developers will this year tackle improvements to the core application server, aspect oriented programming and the JbossCache, which was announced last December.
In previous works, we proposed an approach, using the Aspect Oriented Programming (AOP) paradigm, to increase the adaptability of Web Services.