Aspect-oriented programming

G Kiczales, J Lamping, A Mendhekar, C Maeda… - ECOOP'97—Object …, 1997 - Springer
ECOOP'97—Object-Oriented Programming: 11th European Conference Jyväskylä …, 1997Springer
We have found many programming problems for which neither procedural nor object-
oriented programming techniques are sufficient to clearly capture some of the important
design decisions the program must implement. This forces the implementation of those
design decisions to be scattered throughout the code, resulting in “tangled” code that is
excessively difficult to develop and maintain. We present an analysis of why certain design
decisions have been so difficult to clearly capture in actual code. We call the properties …
Abstract
We have found many programming problems for which neither procedural nor object-oriented programming techniques are sufficient to clearly capture some of the important design decisions the program must implement. This forces the implementation of those design decisions to be scattered throughout the code, resulting in “tangled” code that is excessively difficult to develop and maintain. We present an analysis of why certain design decisions have been so difficult to clearly capture in actual code. We call the properties these decisions address aspects, and show that the reason they have been hard to capture is that they cross-cut the system's basic functionality. We present the basis for a new programming technique, called aspect-oriented programming, that makes it possible to clearly express programs involving such aspects, including appropriate isolation, composition and reuse of the aspect code. The discussion is rooted in systems we have built using aspect-oriented programming.
Springer