Programación Orientada a Aspectos (POA)

11
Programación Orientada a Aspectos paradigmas

Transcript of Programación Orientada a Aspectos (POA)

Page 1: Programación Orientada a Aspectos (POA)

Programación Orientada a

Aspectos

paradigmas

Page 2: Programación Orientada a Aspectos (POA)

¿Qué es POA?Nuevo paradigma de programación

Enfoque estructurado: procedimientos o acciones

Enfoque orientado a objetos: datos encapsulados en clases

Existen funciones que son más difíciles de modularizar que otras, generando un problema conocido como código diseminado.

La principal razón de que el código diseminado se presente es debida a las diferentes formas que un servicio este disponible y la forma en que este es usado.

El código diseminado en una aplicación retrasa el desarrollo, mantenimiento y evolución de un programa.

Page 3: Programación Orientada a Aspectos (POA)

¿Por qué POA?

Existen conceptos que no pueden encapsularse dentro de una unidad funcional, debido a que atraviesan todo el sistema o varias partes de él, como lo son la sincronización, el manejo de memoria, el manejo de errores, perfiles, seguridad o redes

Page 4: Programación Orientada a Aspectos (POA)

Cronología Histórica

Primera generación: código spaghetti

Segunda y tercera generación: descomposición funcional

Cuarta generación: descomposición en objetos

Quinta generación: descomposición en aspectos

Page 5: Programación Orientada a Aspectos (POA)

El Desarrollo Orientado a AspectosRequiere de tres elementos básicos:

Un lenguaje para definir la funcionalidad b·sica, conocido como lenguaje base o componente. Podría ser un lenguaje como C#, C++, Java o Lisp.

Uno o varios lenguajes de aspectos, para especificar el comportamiento de los aspectos. Como podrían ser COOL para sincronización o RIDL para distribución.

Un tejedor de aspectos (aspect weaver) que produce una aplicación que integra las funcionalidades de las clases y los aspectos. Tal proceso se puede llevar acabo en tiempo de ejecución o en tiempo de compilación.

Page 6: Programación Orientada a Aspectos (POA)

Diferenciación

En una primera impresión, la programación orientada a aspectos y la programación orientada a objetos pareciera que son en realidad el mismo paradigma, no obstante, esta noción es errónea.

En la programación orientada a objetos los sistemas se modelan como un conjunto de objetos que interactúan entre sÌ, sin embargo, falla al modelar los conceptos que se entrecruzan.

La diferencia radica en que mientras la programación orientada a aspectos se enfoca en los conceptos que se entrecruzan, la programación orientada a objetos se enfoca en los conceptos comunes.

sigue ->

Page 7: Programación Orientada a Aspectos (POA)

Diferenciación

Page 8: Programación Orientada a Aspectos (POA)

...hablemos mal de POA

Posibles choques entre el código funcional (expresado en el lenguaje base) y el código de aspectos (expresados en los lenguajes de aspectos).

Posibles choques entre el código de aspectos y los mecanismos del lenguaje, uno de los ejemplos más conocidos de este problema es la anomalía de herencia.

Posibles choques entre los aspectos, un ejemplo clásico es tener dos aspectos que trabajan perfectamente por separado pero al aplicarlos conjuntamente resultan en un comportamiento anormal.

Los lenguajes orientados a aspectos actuales no cuentan con mecanismos lingüísticos suficientemente poderosos para respetar por completo todos los principios de diseño, como por ejemplo, el encapsulamiento.

Page 9: Programación Orientada a Aspectos (POA)

VentajasPermite una implementación modularizada reduciendo el acoplamiento entre sus partes.

El código es más limpio, menos duplicado, más fácil de entender y de mantener.

Elimina los problemas causados por el código mezclado y el código diseminado.

Mayor reutilización, los aspectos tienen mayores probabilidades de ser reutilizados en otros sistemas con requerimientos similares.

Los sistemas son más adaptables a cambios, la separación de conceptos permite agregar nuevos aspectos, modificarlos o removerlos fácilmente.

Page 10: Programación Orientada a Aspectos (POA)

ConclusionesLa programación orientada a aspectos es un nuevo paradigma que adolece de madurez y formalidad, necesita ser desarrollada más exhaustivamente aun para consolidar sus conceptos.

La programación orientada a aspectos es el comienzo de un nuevo paradigma, apenas se esta descubriendo su potencialidad, sus problemas, y sus posibles soluciones, lo que nos hace pensar que es una de las ramas con mayor futuro dentro de la ingeniería de software.

Los lenguajes orientados a aspectos actuales, no cuentan con mecanismos lingüísticos suficientemente poderosos para respetar por completo todos los principios de diseño.

Page 11: Programación Orientada a Aspectos (POA)

preguntas...