Separation-of-concerns technologies are key to improving the maintainability and adaptability of software artifacts. These technologies identify loosely coupled, modular, and reusable units of description from which developers can generate tailored software systems with minimal effort. Aspect-oriented programming provides perhaps the most explicit application of the separation-of-concerns tenet.
['Colin Atkinson', 'Thomas Kühne']
Aspect-oriented development with stratified frameworks