Este documento describe la programación orientada a aspectos (POA), incluyendo su definición, fundamentos y un estado del arte de los lenguajes de aspectos. La POA permite separar las preocupaciones transversales al código, como la sincronización y la seguridad, de la lógica del negocio central. Los lenguajes de aspectos soportan la POA mediante la definición y combinación de aspectos y clases.