Em
ciência da computação,
programação orientada a aspectos ou
POA, é um paradigma de
programação de computadores que permite aos
desenvolvedores de
software separar e organizar o código de acordo com a sua importância para a aplicação (
separation of concerns). Todo o programa escrito no paradigma
orientado a objetos possui código que é alheio a implementação do comportamento do
objeto. Este código é todo aquele utilizado para implementar funcionalidades secundárias e que encontra-se espalhado por toda a aplicação (
crosscutting concern). A POA permite que esse código seja encapsulado e modularizado.
O conceito foi criado por Gregor Kiczales e a sua equipe na
Xerox PARC, a divisão de pesquisa da
Xerox. Eles desenvolveram o
AspectJ, a primeira e mais popular linguagem POA.