Programación Orientada a Aspectos

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 4 de mayo de 2020; las comprobaciones requieren 3 ediciones .

La Programación Orientada a Aspectos (AOP)  es un paradigma de programación basado en la idea de separación de funcionalidad para mejorar la partición de programas en módulos .

La metodología AOP fue propuesta por un grupo de ingenieros del Centro de Investigación Xerox PARC dirigido por Gregor Kiczales. También desarrollaron una extensión orientada a aspectos para el lenguaje Java , llamada AspectJ  - (2001).

Justificación

Los paradigmas de programación existentes ( procedimiento , modular , programación orientada a objetos (OOP) y diseño orientado al dominio  ) brindan ciertas formas de separar y resaltar la funcionalidad: funciones , módulos , clases , pero algunas funcionalidades que utilizan los métodos propuestos no se pueden separar en entidades separadas. Tal funcionalidad se denomina end-to- end (del inglés  disperso  - disperso o inglés  enredado - entrelazado), ya que su implementación se distribuye entre varios módulos del programa. La funcionalidad de un extremo a otro conduce a un código disperso y confuso que es difícil de entender y mantener.

El registro y el manejo de excepciones  son ejemplos típicos de funcionalidad transversal. Otros ejemplos: rastreo ; autenticación y verificación de los derechos de acceso ; programación de contratos (en particular, verificación de condiciones previas y posteriores). Para un programa escrito en el paradigma OOP, cualquier funcionalidad que no se haya descompuesto es de transferencia.

Sin embargo, según algunos autores [1] , AOP también se puede utilizar con éxito para resolver problemas de seguridad, multiproceso , gestión de transacciones y muchos otros.

Conceptos básicos

Todos los lenguajes AOP proporcionan un medio para aislar la funcionalidad de un extremo a otro en una entidad separada. Dado que AspectJ es el antecesor de esta dirección, los conceptos utilizados en esta extensión se han extendido a la mayoría de los lenguajes AOP.

Conceptos básicos de AOP:

Notas

  1. Mitos y Realidades de AOP . IBM. Fecha de acceso: 27 de octubre de 2010. Archivado desde el original el 5 de febrero de 2012.

Enlaces

Literatura