http://www.ardice.com/Computers/Programming/Methodologies/Aspect-Oriented/Adaptive_Programming/