Many terms used to define the AOP (Aspect Oriented Programming) features and they are part of the AOP language. These terms must be known to understand the AOP: * Aspect : An aspect is the cross-cutting functionality you are implementing. It is the aspect, or area of your application you are modularizing. The most common example of aspect is logging. Logging is something that is required throughout an application. * Joinpoint : A joinpoint is a point in the execution of the application where an aspect can be plugged in. * Advice : Advice is the actual implementation of our aspect. It is advising your application of new behaviour. * Pointcut : A pointcut defines at what joinpoints advice should be applied. * Introduction : An introduction allows you to add new methods or attributes to existing classes. * Target : A target is the class that is being advised. * Proxy : A proxy is the object created after applying advice to the target object. * Weawing : Weawing is the process of applying aspects to a target object to create a new proxied object.