Este documento describe la programación orientada a aspectos como una técnica para separar las preocupaciones transversales de una aplicación de su lógica principal. Se define un aspecto como una unidad modular que se entremezcla en la estructura de otras unidades funcionales. La programación orientada a aspectos busca resolver el problema de separar las distintas preocupaciones de un programa para facilitar el razonamiento, depuración y reutilización del código.