Aspect-oriented programming (AOP) is an approach to programming that allows global properties of a program to determine how it is compiled into an executable program. AOP can be used with object-oriented programming ( OOP ).
An aspect is a subprogram that is associated with a specific property of a program. As that property varies, the effect "ripples" through the entire program. The aspect subprogram is used as part of a new kind of compiler called an aspect weaver .
The conceptualizers of AOP compare aspect programming to the manufacturing of cloth in which threads are automatically interwoven. Without AOP, programmers must stitch the threads by hand.