CARACTERÍSTICAS Y FUNCIONALIDADES DE LA PROGRAMACIÓN ORIENTADA A ASPECTOS
Enviado por Ensa05 • 1 de Mayo de 2018 • 2.548 Palabras (11 Páginas) • 310 Visitas
...
La idea central de la POA es permitir que un programa sea construido describiendo cada concepto (o incumbencia) separadamente. El soporte para este nuevo paradigma se logra a través de una nueva clase de lenguajes, llamados lenguajes orientados a aspectos (LOA), los cuales brindan mecanismos para capturar y declarar aquellos elementos que se diseminan por todo el sistema (aspectos). (Campos, Maysundo, and Enriquez 2003) que se espera
FUNDAMENTACIÓN TEÓRICA Y METODOLÓGICA
Programación Orientada a Aspectos (AOP) es una técnica de maduración que requiere una buena comprensión de qué tipos de errores los programadores pueden hacer durante el desarrollo de aplicaciones. Por desgracia, la falta de este conocimiento parece representar una de las razones para la adopción prudente de AOP en proyectos de desarrollo de software reales. (Santos et al. 2016)
La necesidad de incorporar un conjunto de nuevas herramientas que muestren de manera clara y simple la inclusión de rutinas “especiales” que coadyuven a mejorar el producto software sin entremezclar código de las funcionalidades básicas y las funcionalidades especiales. En este nuevo enfoque se ve la necesidad de disponer de un conjunto de herramientas que hagan posible los resultados mencionados y se plantea la necesidad de disponer de Lenguajes de programación orientados a aspectos (LPOA) y lenguajes de descripción arquitectónica adecuados a este paradigma. Además se considera importante disponer de un conjunto de métricas que valoren la calidad de los productos obtenidos con este nuevo paradigma a fin de que los mismos cumplan con algunas de las condiciones impuestas por los estándares existentes. (Orihuela Sequeiros and Alcon López 2015)
es un estilo de programación cuyo principal objetivo es lograr una adecuada modularización de los conceptos involucrados en una aplicación, esto se traduce en lograr la separación entre los requerimientos funcionales de los no funcionales, para obtener un mejor entendimiento de los conceptos, eliminando la dispersión del código y haciendo que las implementaciones resulten más comprensibles, adaptables y reutilizable. A su vez proporciona un marco de trabajo que permite al programador separar claramente componentes y aspectos a través de mecanismos que hagan posible abstraerlos y componerlos para producir el sistema global. (Iglesias n.d.)
No sólo existen varios tipos de lenguajes de programación, sino que también se pueden encontrar distintas formas de programar una aplicación. Hay diversos paradigmas que permiten encontrar una solución más adecuada a los problemas. La idea es que el programador los conozca y sepa seleccionar el adecuado para cada situación particular.
Algunos ejemplos de paradigmas de programación:
- El paradigma imperativo es considerado el más común y está representado, por ejemplo, por el C o por BASIC.
- El paradigma funcional está representado por la familia de lenguajes LISP (en particular Scheme), ML o Haskell.
- El paradigma lógico, un ejemplo es PROLOG.
- El paradigma orientado a objetos. Un lenguaje completamente orientado a objetos es Smalltalk.
Los tres principales requerimientos de la POA son:
- Un lenguaje para definir la funcionalidad básica, conocido como lenguaje base o componente. Podría ser un lenguaje imperativo, o un lenguaje no imperativo (C++, Java, Lisp, ML).
- Uno o varios lenguajes de aspectos, para especificar el comportamiento de los aspectos. (COOL, para sincronización, RIDL, para distribución, AspectJ, de propósito general.)
- Un tejedor de aspectos (Weaver), que se encargará de combinar los lenguajes. Tal proceso se puede retrasar para hacerse en tiempo de ejecución o en tiempo de compilación.
Los lenguajes orientados a aspectos definen una nueva unidad de programación de software para encapsular aquellos conceptos que cruzan todo el código.
A la hora de “tejer” los componentes y los aspectos para formar el sistema final, es claro que se necesita una interacción entre el código de los componentes y el código de los aspectos. También es claro que esta interacción no es la misma interacción que ocurre entre los módulos del lenguaje base, donde la comunicación está basada en declaraciones de tipo y llamadas a procedimientos y funciones. La POA define entonces una nueva forma de interacción, provista a través de los puntos de enlace (join points).
Los puntos de enlace brindan la interfaz entre aspectos y componentes; son lugares dentro del código donde es posible agregar el comportamiento adicional que destaca a la POA. Dicho comportamiento adicional es especificado en los aspectos.
Aún nos falta introducir el encargado principal en el proceso de la POA. Este encargado principal conocido como tejedor debe realizar la parte final y más importante: “tejer” los diferentes mecanismos de abstracción y composición que aparecen tanto en los lenguajes de aspectos como en los lenguajes de componentes, guiado por los puntos de enlace.
Estructura general
La estructura de una implementación basada en aspectos es análoga a la estructura de una implementación basada en los LPG.
Una implementación basada en LPG consiste en:
- Un lenguaje.
- Un compilador o intérprete para ese lenguaje.
- Un programa escrito en ese lenguaje que implemente la aplicación.
[pic 1]
Una implementación basada en POA consiste en:
- El lenguaje base o componente para programar la funcionalidad básica.
- Uno o más lenguajes de aspectos para especificar los aspectos.
- Un tejedor de aspectos para la combinación de los lenguajes.
- El programa escrito en el lenguaje componente que implementa los componentes.
- Uno o más programas de aspectos que implementan los aspectos. Gráficamente, se tiene una estructura como la siguiente:
[pic 2]
DESARROLLO ORIENTADO
...