aspect-oriented software development

The best courses for "software development technology that seeks new modularizations of software systems in order to isolate secondary or supporting functions from the main program's business logic", aspect-oriented software development.