Aspect-oriented programming
Aspect-oriented programming centers around contructs called aspects, which describe parts of an object or class from outside of the class.
The most widely-known aspect language is AspectJ, which is based on Java. AspectJ was created at Xerox PARC. More information about aspects can be found at www.aspectj.org.
Perhaps the biggest successes of aspects are in dealing with these ilities. Aspects easily add logging, error handling, and debugging code throughout a program, consistently, without changing the rest of the program. Aspects help programmers implement reliability, dubuggability, and scalability.
Aspects emerged out of object-oriented programming. Aspects are closely related to programming concepts like subjects, mixins, and delegation.