Programación orientada a aspectos
La programación orientada a aspectos (AOP) es un modelo de programación que implementa la lógica cruzada, proporcionando mecanismos que hacen posible separar los elementos que son transversales a todo el sistema.
Introducción
Durante el desarrollo de aplicaciones nos encontramos con problemas que no se pueden resolver de una manera adecuada con las técnicas habituales de programación procedural (PP) o con las de programación orientada a objetos (OOP). Existen determinados aspectos que se refieren a requisitos transversales compartidos por todos o por parte de los componentes de la aplicación y que no se pueden encapsular dentro de una única unidad funcional.
Por ejemplo, monitorización, manejo de errores, métricas, seguridad, etc.
En este caso nos vemos forzados a tomar decisiones de diseño que repercuten de manera importante en el desarrollo de la aplicación.
Como consecuencia de este diseño nos encontramos con:
- Code scaterring
- Code tangling
Lo que se traduce en:
- Menor productividad
- Reusabilidad disminuida
- Código de calidad empobrecida
- Evolución difícil
Con la AOP se proporcionan mecanismos que hacen posible separar los elementos que son transversales a todo el sistema. Se pueden capturar los diferentes intereses entrecruzados que componen la aplicación en entidades bien definidas, eliminando las dependencias entre cada uno de los módulos que la componen.
Cada interés entrecruzado será encapsulado en una unidad separada, o aspecto.