Está en la página 1de 9

MAGDA JULIETH ZARRATE SALDAÑA

ÉNFASIS 1

PRESENTADO POR:
MAGDA JULIETH ZARRATE SALDAÑA

PROGRAMACION ORIENTADA A ASPECTOS

PROFESOR:

Dacarth Sarmiento Porto

CORPORACION UNIVERSITARIA REMINGTON


INGENIERIA DE SISTEMAS
BOGOTA
03 DE Abril DE 2017

1
MAGDA JULIETH ZARRATE SALDAÑA

2
MAGDA JULIETH ZARRATE SALDAÑA

3
MAGDA JULIETH ZARRATE SALDAÑA

Programación Orientada a Aspectos (POA)


Se puede decir que este tipo de programación consiste en permitir una adecuada
modularización de las aplicaciones y facilitar una mejor separación de compromisos
(obligación Correspondencia de hacer algo).
Podemos decir que gracias al POA podemos encapsular diferentes conceptos que
componen la aplicación con entidades muy bien definidas, eliminando las
dependencias que tiene cada módulo. De esta forma se obtiene un mejor
razonamiento sobre los conceptos, eliminando el esparcimiento del código y las
ejecuciones resultan más compresibles, configurables y reusables. El termino POA
es usado para referirse a varias tecnologías relacionadas como técnicas
adaptativas, filtros de comprensión, programación orientada a sujetos o separación
multidimensional de competencias.
Uno de los principales objetivos de la POA consiste en la separación de
funcionalidades dentro del sistema:
 Las funcionalidades comunes manejadas a lo largo de la aplicación.
 Las funcionalidades propias de cada módulo.
Cada funcionalidad que tengan en común se encapsula en una entidad.
En este ensayo destacaremos los conceptos más básicos de la (POA)
 Aspectos: es una función transversal que se implementa como modular
separándose del resto del sistema.
 Punto de cruce o unión: es el punto de ejecución dentro del sistema donde
un aspecto puede ser conectado, llamada de un método u la modificación de

4
MAGDA JULIETH ZARRATE SALDAÑA

un campo. El aspecto será insertado en el flujo de ejecución de la aplicación


para adherir su funcionalidad.
 Concejo: es la implementación del aspecto, en términos más de
programación se puede decir contiene el código que realiza la nueva
funcionalidad, interceptando aplicaciones en el punto de cruce.
 Punto de corte: es el que define los Concejos en el punto de cruce. Como
expresiones regulares o mediante patrones de nombre (clases, métodos,
campos) también lo puede realizar dinámicamente según el tiempo de
ejecución según el valor agregado en ciertos parámetros.
 Inducción: permite añadir métodos, atributos, a clases ya existentes.
 Destinatario: es la clase aconsejada, la clase que es objeto de un consejo.
Sin AOP, esta clase debería contener su lógica, además de la lógica del
aspecto.
 Resultante: es el objeto creado después de aplicar el Consejo al Objeto
Destinatario.
 Tejido: es el proceso de aplicar Aspectos a los Objetos Destinatarios para
crear los nuevos Objetos Resultantes en los especificados Puntos de Cruce.

Desarrollo POA
AspectC++ es un compilador que permite desarrollar aspectos en C++.
AspectJ es una extensión Java del proyecto Eclipse para ayudar en el desarrollo
orientado a aspectos.
Aspect, un módulo Perl disponible en CPAN para la Programación Orientada a
Aspectos (en inglés).
PHP-AOP (AOP.io) es una lib que proporciona todo el paradigma de la POA en
PHP.
phpAspect es una extensión PHP para implementar el paradigma de la POA, que,
mediante árboles de decisión XML, realiza el weaving del software para ser
ejecutado como PHP estándar.
FLOW3 es un framework MVC de PHP incluye un módulo para poder realizar
Programación orientada a Aspectos en nuevos desarrollos.
AOP con SpringFramework 2.5 es un Framework de Java que permite programar
en el paradigma de Aspectos utilizando Anotación Java.
Aspyct AOP es un módulo de Python que permite incluir Programación orientada a
Aspectos a programas ya existentes escritos en Python o a nuevos desarrollos.

5
MAGDA JULIETH ZARRATE SALDAÑA

Es una ayuda para los programadores que permite reducir código de rutinas que siempre deberían ejecutarse
y no se puede usar la herencia. Además, cada lógica de negocio solo tendrá lógica de negocio, y no código
adicional que son repetitivas y no son parte del negocio.

Veamos la definición de los métodos hacer...() de la clase Cuenta:

?
1 public void hacerDeposito(Double cantidad) {

2 if(cantidad <= 0) {

3 System.out.println("No hay dinero suficiente para hacer el depósito");

}
4
else {
5
Date hora = new Date();
6
SimpleDateFormat formatoDeFecha = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm
7
//Realizamos el depósito
8 this.saldo += cantidad;
9 //Registramos el movmiento
10 System.out.println("Movimiento realizado a las " + formatoDeFecha.format(hora))

11 }

12 }

13
public void hacerTransferencia(Double cantidad, Cuenta cuentaDestino)
14
{
15
if(this.saldo < cantidad) {
16
System.out.println("No hay fondos suficientes para la transferencia.");
17
}
18 else {
19 Date hora = new Date();
20 SimpleDateFormat formatoDeFecha = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm

21 cuentaDestino.hacerDeposito(cantidad);

6
MAGDA JULIETH ZARRATE SALDAÑA

22 this.saldo -= cantidad;

23 //Registramos el movmiento

System.out.println("Movimiento realizado a las " + formatoDeFecha.format(hora))


24
}
25
}
26

27
public void hacerExtraccion(Double cantidad) {
28

29
if(this.saldo < cantidad) {
30 System.out.println("No hay fondos suficientes para la extracción.");
31 }

32 else {

33 Date hora = new Date();

34 SimpleDateFormat formatoDeFecha = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm

//Extraemos la cantidad del saldode la cuenta.


35
this.saldo -= cantidad;
36
//Registramos el movmiento
37
System.out.println("Movimiento realizado a las " + formatoDeFecha.format(hora))
38
}
39 }
40

41

42

43

7
MAGDA JULIETH ZARRATE SALDAÑA

Bibliografía:
https://es.wikipedia.org/wiki/Arquitectura_orientada_a_servicios
https://www.google.com.co/search?q=Sistemas+distribuidos&oq=Siste
mas+distribuidos&aqs=chrome..69i57.9990j0j8&sourceid=chrome&ie=
UTF-8
https://oposicionestic.blogspot.com.co/2012/08/arquitectura-soa-
orientada-servicios.html
https://www.ecured.cu/Programaci%C3%B3n_orientada_a_aspectos
http://librosweb.es/libro/python/capitulo_5/programacion_orientada_a_
objetos.html
https://www.youtube.com/watch?v=k_V8pQSS7-U
https://www.youtube.com/watch?v=h4zqKzByYAM
http://includeblogh.blogspot.com.co/2011/04/programacion-
orientada-aspectos-por-que.html

8
MAGDA JULIETH ZARRATE SALDAÑA

También podría gustarte