La programmazione orientata agli aspetti (Aspect Oriented Programming, AOP) è una delle aree di ricerca più calde nello sviluppo dell'informatica di questi anni. Si sono riscontrati molti problemi di programmazione per i quali il modello tradizionale di programmazione orientata agli oggetti (OOP) non è sufficiente a catturare chiaramente alcune delle importanti decisioni di progettazione che il programma deve attuare. Questo problema è molto più evidente negli ambienti di elaborazione pervasiva, data la varietà degli ambienti. Questo articolo è un'introduzione a un paradigma di programmazione chiamato Aspect-Oriented Programming, una tecnica di programmazione che permette di esprimere quei programmi che l'OOP non riesce a supportare. Questo articolo include anche un'introduzione ad AspectJ.