PROGRAMACIÓN ORIENTADA A

ASPECTOS

RESUMEN
Definición:

AUTORES:
LUIS CARLOS ARRIETA SIERRA
CARLOS EDUARDO FERNÁNDEZ
JUAN MANUEL ORTEGA ORDOÑEZ
JHONIER SANTIAGO SERNA
INTRODUCCIÓN
La programación ha evolucionado a lo
largo de la historia y podemos dividirla
en diferentes etapas. Primero se
conoció el paradigma de programación
imperativa, que se conoce como la
etapa del código espagueti, donde no
había separación de conceptos, los
datos y las funcionalidades se
mezclaban a lo largo del código. Luego
se crea el paradigma de la
Programación funcional, donde como su
nombre lo indica se basa en la
separación de funciones y los datos
compartidos se esparcen a lo largo del
código (a esto se le llama scattering).
Después surge el paradigma de
programación Orientada a Objetos
donde se modulariza el código
basándose
en
datos
más
comportamientos, y cuya principal
desventaja es el esparcimiento de
funciones a lo largo del código. Como un
complemento a la programación
orientada
a
objetos
nace
la
programación orientada a aspectos, que
consiste en separar los conceptos que
entrecruzan varias clases y se extienden
a lo largo de éstas, pero que no
pertenecen a esas clase en sí mismas y
busca solucionar problemas de reúso de
código que ni la herencia ni la
delegación pueden manejar de manera
satisfactoria.

La programación orientada a aspectos
se plantea como un nuevo paradigma de
programación, el cual consiste en
permitir una adecuada modularización y
hacer una mejor separación de
conceptos. Incluso, estos conceptos
pueden aparecer no sólo en varias
clases, sino en una sola y se
denominan "conceptos transversales".
La POA viene para tratar de separarlos
y encapsularlos en una aplicación y
aislarlos para independizar a los objetos
de éstos conceptos. Este aislamiento se
encapsula en "aspectos".
La definición más formal de un aspecto
es esta: Un aspecto es una unidad
modular que se disemina por la
estructura
de
otras
unidades
funcionales. Los aspectos existen tanto
en la etapa de diseño como en la de
implementación. Un aspecto de diseño
es una unidad modular del diseño que
se entremezcla en la estructura de otras
partes del diseño. Un aspecto de
programa o de código es una unidad
modular del programa que aparece en
otras unidades modulares del programa
(G. Kiczales).
Un ejemplo puede ser la seguridad:
Pueden haber muchos lugares en una
aplicación donde se necesite ejecutar
un chequeo de la seguridad, por
estadística, esto puede llevar a copypaste de código, o enredar el código de
la aplicación con el de la infraestructura.
Los
aspectos
pueden
utilizarse
para cosas sencillas como poder
cambiar el curso de un programa, hasta
lograr modificar las clases y sus
métodos, sus respectivos parámetros y
formas de ejecución, también pueden
ser usadas en una forma de vigilancia ya
que estos aspectos tienen una
ejecución paralela al programa gracias a
un weaver o tejedor (explicado en el
próximo apartado ).

es decir. -Cuando queremos reutilizar esa lógica en diferentes proyectos.] “Programación Orientada a Aspectos. [Abait. AspectJ y otras plataformas de desarrollo orientadas a aspectos” [Xabier Laiseca Manso] “Programación Orientada a Aspectos con AspectJ”. facilitando así la adaptabilidad. y desacoplarla de las clases. Uno o varios joinpoints definen lo que se conoce como pointcut o punto de corte.Cuando detectamos cierta lógica. Los aspectos tienen un propósito. AspyctAOP (Módulo de python). mantenimiento.ve/~yudith/docencia/ci4822/presentacionPOA. Bibliografía: Imagen tomada de: http://ldc. requerimiento o responsabilidad que no pertenece a un único punto en un programa clase. Y así mediante la combinación de un advice y un pointcut. y no funciones compartidas con otras instancias del programa. .pdf Tenemos diferentes editores para trabajar con la programación orientada a aspectos. Universidad de Sevilla. Una aplicación puede tener muchas oportunidades para que el advice sea aplicado. Podemos usar POA en casos como estos: . y los aspectos por otro. donde permite que los objetos hagan solamente lo que deben hacer. sino que afecta en diferentes partes de una clase o una jerarquía. pudiendo estar cada aspecto codificado con un lenguaje distinto. tenemos un mecanismo llamado weaver o tejedor. o reutilizar código entre diferentes implementaciones de esa lógica.Cuando queremos diseñar y encontrar abstracciones. POA permite tratar la funcionalidad pura por un lado.Tecnologías y estado en cuestión de la Programación Orientada a Aspectos. estas oportunidades se llaman joinPoints. se define lo que es un aspecto. como son: Aspectj (Plugin para eclipse). Cuando además. el cual nos combina el código que implementa la funcionalidad básica con los distintos módulos que implementan los aspectos. En la programación orientada a aspectos. el cual define en donde se ejecutará el aspecto. CONCLUSIONES En conclusión. extensibilidad y reusabilidad de un programa. [Antonia Mª Reina Quintero 2000] “Visión General de la Programación Orientada a Aspectos”. la POA viene a presentarse como un complemento de la POO. Departamento de Lenguajes y Sistemas Informáticos. cuando lo hace y donde lo hace. AspectC++ (compilador de C++). queremos encapsular esa lógica. que en términos de POA se denomina advice y define el qué y el cuándo de un aspecto. además de que podemos adoptar este proceso para HTML y CSS (Creación web). es decir. cuando debe ejecutarse. . Esteban S. aparte del compilador como forma de interpretación al lenguaje de máquina. y estos puntos pueden ser el llamado de un método o la modificación de un atributo. que hace.usb. Universidad de Deusto.