Programación Orientada a Aspectos (POA)

of 11 /11
Programación Orientada a Aspectos paradigmas

Embed Size (px)

Transcript of Programación Orientada a Aspectos (POA)

  • 1. paradigmas ProgramacinOrientada a Aspectos

2. Qu es POA? Nuevo paradigma de programacinEnfoque estructurado: procedimientos o accionesEnfoque orientado a objetos: datos encapsulados en clasesExisten funciones que son ms difciles de modularizar que otras, generando un problema conocido como cdigo diseminado.La principal razn de que el cdigo diseminado se presente es debida a las diferentes formas que un servicio este disponible y la forma en que este es usado.El cdigo diseminado en una aplicacin retrasa el desarrollo, mantenimiento y evolucin de un programa. 3. 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 sincronizacin, el manejo de memoria, el manejo de errores, perles, seguridad o redes 4. Cronologa HistricaPrimera generacin: cdigo spaghettiSegunda y tercera generacin: descomposicin funcionalCuarta generacin: descomposicin en objetosQuinta generacin: descomposicin en aspectos 5. El Desarrollo Orientado a Aspectos Requiere de tres elementos bsicos: Un lenguaje para denir la funcionalidad bsica, conocido como lenguaje base o componente. Podra ser un lenguaje como C#, C++, Java o Lisp.Uno o varios lenguajes de aspectos, para especicar el comportamiento de los aspectos. Como podran ser COOL para sincronizacin o RIDL para distribucin.Un tejedor de aspectos (aspect weaver) que produce una aplicacin que integra las funcionalidades de las clases y los aspectos. Tal proceso se puede llevar acabo en tiempo de ejecucin o en tiempo de compilacin. 6. Diferenciacin En una primera impresin, la programacin orientada a aspectos y la programacin orientada a objetos pareciera que son en realidad el mismo paradigma, no obstante, esta nocin es errnea.En la programacin orientada a objetos los sistemas se modelan como un conjunto de objetos que interactan entre s, sin embargo, falla al modelar los conceptos que se entrecruzan.La diferencia radica en que mientras la programacin orientada a aspectos se enfoca en los conceptos que se entrecruzan, la programacin orientada a objetos se enfoca en los conceptos comunes.sigue -> 7. Diferenciacin 8. ...hablemos mal de POAPosibles choques entre el cdigo funcional (expresado en el lenguaje base) yel cdigo de aspectos (expresados en los lenguajes de aspectos). Posibles choques entre el cdigo de aspectos y los mecanismos del lenguaje,uno de los ejemplos ms conocidos de este problema es la anomala deherencia. Posibles choques entre los aspectos, un ejemplo clsico es tener dos aspectosque trabajan perfectamente por separado pero al aplicarlos conjuntamenteresultan en un comportamiento anormal. Los lenguajes orientados a aspectos actuales no cuentan con mecanismoslingsticos sucientemente poderosos para respetar por completo todos losprincipios de diseo, como por ejemplo, el encapsulamiento. 9. Ventajas Permite una implementacin modularizada reduciendo el acoplamiento entre sus partes.El cdigo es ms limpio, menos duplicado, ms fcil de entender y de mantener.Elimina los problemas causados por el cdigo mezclado y el cdigo diseminado.Mayor reutilizacin, los aspectos tienen mayores probabilidades de ser reutilizados en otros sistemas con requerimientos similares.Los sistemas son ms adaptables a cambios, la separacin de conceptos permite agregar nuevos aspectos, modicarlos o removerlos fcilmente. 10. Conclusiones La programacin orientada a aspectos es un nuevo paradigma que adolece de madurez y formalidad, necesita ser desarrollada ms exhaustivamente aun para consolidar sus conceptos.La programacin 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 ingeniera de software.Los lenguajes orientados a aspectos actuales, no cuentan con mecanismos lingsticos sucientemente poderosos para respetar por completo todos los principios de diseo. 11. preguntas...