O documento apresenta uma introdução à programação orientada a aspectos (POA) e sua implementação com a ferramenta AspectJ em Java. Ele descreve os conceitos de interesses transversais, aspectos, joinpoints, pointcuts e advices da POA e como o AspectJ utiliza esses elementos para estender Java e permitir a separação de preocupações na programação.