AspectJ
La programmazione orientata agli aspetti (AOP) cerca di dare una soluzione alle limitazioni dei linguaggi attualmente esistenti. Si punta, in particolare, ad aumentare il grado di separazione dell'implementazione di funzionalita' distinte.
AspectJ e' l'estensione di Java ad aspetti, e' il rappresentante piu' maturo nell'ambito dei linguaggi AOP. Esso dispone di costrutti specifici per intercettare e modificare il flusso di controllo e per manipolare la struttura statica delle classi.
Grazie a questi meccanismi e' possibile dare un'implementazione localizzata di funzionalita' che altrimenti sarebbero disperse per tutto il codice dell'applicazione.
I principali vantaggi di questo approccio dovrebbero manifestarsi in una maggiore comprensibilita' (e qunindi maggiore manutenibilita') del codice, dovuta appunto a una migliore distinzione di funzionalita' differenti.
Riferimenti
http://www.eclipse.org/aspectj/
http://aosd.net/
http://sra.itc.it/people/ceccato/