Você está na página 1de 25

INSTITUTO TECNOLGICO SUPERIOR DE SAN

ANDRS TUXTLA

Ing. Sistemas Computacionales

Asesor(a): MTI. Ana Francisca Lule Rangel

Integrantes:
Diego Polito Gilberto
Romn Corts Elfega Denis

Grado: Grupo:
8vo. Semestre 804-A

San Andrs Tuxtla, Ver. A 28 de Febrero de 2017


Programacin Orientada a
Aspectos
POA
INTRODUCCIN
Concepto

La programacin orientada a aspectos (AOP - Aspect Oriented


Programming) es un paradigma de programacin que intenta formalizar y
representar de forma concisa los elementos que son transversales a todo el
sistema.
Terminologa

Un consejo (advice) es una accin que hay que ejecutar en


determinado/s punto/s de un cdigo, para conseguir implementar un
aspecto. El conjunto de puntos del cdigo donde se debe ejecutar un
advice se conoce como punto de corte o pointcut.

Un aspecto (aspect) es un conjunto de advices. Siguiendo la sintaxis de


AspectJ, los aspectos se representan como clases Java, marcadas con la
anotacin @Aspect.
Pointcut (Puntos de Corte) define los Consejos que se aplicarn a cada
Punto de Cruce.

Execution (), que representa la llamada a un mtodo que encaje con una
determinada signatura.

Within (), permite especificar todas las llamadas a mtodos dentro de un


paquete o subpaquetes del mismo (usando el comodn. al igual que en la
sintaxis de execution()).
Args (), permite especificar el tipo deseado para los argumentos.

AdvicesBefore, Esta anotacin ejecuta un advice antes de la ejecucin


del punto de corte especificado.

After, Esta anotacin ejecuta un advice despus de la ejecucin del punto


de corte especificado, genere o no una excepcin, es decir, al estilo del
finally de Java.
Estructura

La estructura de una implementacin basada en aspectos es anloga a la


estructura de una implementacin basada en los LPG.

Una implementacin basada en LPG consiste en:

Un lenguaje.

Un compilador o intrprete para ese lenguaje.

Un programa escrito en ese lenguaje que implemente la aplicacin


Estructura POA
Evaluacin de Expresiones

El orden en que se evalan los operando viene dado por unas reglas.

Reglas de procedencia

Reglas asociativas

Uso de parntesis
Hay tres reglas de prioridad a seguir para evaluar una expresin:

Primero, los parntesis (si tiene)

Despus, seguir el orden de prioridad de operadores

Por ltimo, si aparecen dos o ms operadores iguales, se evalan de


izquierda a derecha.
Tipos de Datos

NOMBRE DE TIPO TAMAO DE 32BITS TAMAO DE 64BITS


char 1 byte 1 byte
short 2 bytes 2 bytes
int 4 bytes 4 bytes
long 4 bytes 8 bytes
long long 8 bytes 8 bytes
Funciones

Llamadas a una funcin: call(f(arg)), captura todas las llamadas a la


funcin f con un argumento.

Durante el flujo de control: cflow (cualquier corte), captura el contexto de


ejecucin dinmico del corte.

Referencias a una variable: varref (nombre_variable), captura las


referencias a la variable nombre_variable.

Todos los cortes se pueden describir utilizando expresiones lgicas,


aumentando la expresividad del lenguaje: el operador y (&&), el
operador o (||), y el operador de negacin (!).
Lenguajes Tpicos o Representativos

D es un ambiente de lenguajes de aspectos para la programacin


distribuida. Se llama ambiente de lenguajes, en vez de solamente
lenguaje, porque consiste en realidad de dos lenguajes:

COOL, para controlar la sincronizacin de hilos (threads)

RIDL, para programar la interaccin entre componentes remotos.


ASPECTC

AspectC es un simple lenguaje de aspectos de propsito general que


extiende C, es un subconjunto de AspectJ sin ningn soporte para la
programacin orientada a objetos o mdulos explcitos.
ASPECTC++

AspectC++ es un lenguaje de aspectos de propsito general que


extiende el lenguaje C++ para soportar el manejo de aspectos. En este
lenguaje los puntos de enlace son puntos en el cdigo componente
donde los aspectos pueden interferir.
ASPECTS

AspectS extiende el ambiente


Squeak/Smalltalk para permitir un
sistema de desarrollo orientado a
aspectos. Squeak es una
implementacin abierta y portable de
Smalltalk80 cuya mquina virtual est
completamente escrita en Smalltalk,
para mayor referencia visitar su
pgina.
MALAJ

Es un lenguaje orientado a aspectos de dominio especfico,


concentrndose en dos aspectos: sincronizacin y relocacin. Puede
verse como un sucesor de los lenguajes COOL y RIDL por su filosofa,
enfatizando la necesidad de restringir la visibilidad de los aspectos, y
reglas claras de composicin con los constructores tradicionales.
ASPECTJ

AspectJ es un lenguaje orientado a aspectos de propsito general.

AspectJ es una extensin compatible de Java para facilitar el uso de


aspectos por parte de los programadores de Java. Por compatible se
entiende:

Compatibilidad base.

Compatibilidad de plataforma.

Compatibilidad de programacin
AspectJ es una extensin de Java
para el manejo de aspectos
Ejemplo

package ejemplo;

public class HW {

private String mensaje;

public HW() { this.mensaje = HelloWorld;}

public void setMensaje(String M) { this.mensaje = M; }

public String getMensaje() { return this.mensaje; }

public void showMensaje() { System.out.println(this.mensaje); }

}
public class HelloWorld {
Public static void maint (String [] args) {
HW H;
H=new HW();
H.showMensaje();
}
}
public aspect Aspecto {
pointcut mensajeAImprimir():
call (void HW.showMensaje());
before(): mensajeAImprimir() {
System.out.println(Hola a Todos);
}
after: mensajeAImprimir() {
System.out.println(Chao a Todos);
}
}
CONCLUSIN
Muchas Gracias por su
Atencin.

Você também pode gostar