Programación Orientada a Aspectos (POA) Paradigma de programación. Presentado por Presentado por:...

13
Programación Orientada Programación Orientada a Aspectos (POA) a Aspectos (POA) Paradigma de programación. Presentado Presentado por por: Linda Arvelo Sistemas Distribuidos. Universidad Simón Universidad Simón Bolívar Bolívar.

Transcript of Programación Orientada a Aspectos (POA) Paradigma de programación. Presentado por Presentado por:...

Page 1: Programación Orientada a Aspectos (POA) Paradigma de programación. Presentado por Presentado por: Linda Arvelo Sistemas Distribuidos. Universidad Simón.

Programación Orientada a Programación Orientada a Aspectos (POA)Aspectos (POA)

Paradigma de programación.

Presentado porPresentado por:Linda Arvelo

Sistemas Distribuidos.

Universidad Simón BolívarUniversidad Simón Bolívar.

Page 2: Programación Orientada a Aspectos (POA) Paradigma de programación. Presentado por Presentado por: Linda Arvelo Sistemas Distribuidos. Universidad Simón.

Con el desarrollo de los sistemas han surgido nuevos problemas a la hora de programar. Dos de los principales inconvenientes que se tienen usando POO:

La POA es un modelo de programación cuyo propósito es permitir una adecuada modularización de las aplicaciones y posibilitar una mejor separación de los requerimientos.

Page 3: Programación Orientada a Aspectos (POA) Paradigma de programación. Presentado por Presentado por: Linda Arvelo Sistemas Distribuidos. Universidad Simón.

Objetivos de la Programación Orientada a Aspectos

La POA esta orientada a mejorar la calidad del software, a entender e implementar de una manera separada cada uno de los requerimientos, para poder reutilizar el código de una forma más efectiva.

Entre los objetivos principales de la POA están:

Separar los requerimientos para que las decisiones se tomen en un lugar concreto y no sea diseminado por la aplicación.

Minimizar las dependencias entre los requerimientos para así desacoplar los distintos elementos que intervienen en un programa.

Page 4: Programación Orientada a Aspectos (POA) Paradigma de programación. Presentado por Presentado por: Linda Arvelo Sistemas Distribuidos. Universidad Simón.

Dentro de POA existen dos partes esenciales que son:

Componente: Pueden encapsularse claramente dentro de un procedimiento. Un elemento es claramente encapsulado si está bien localizado e identificado, es fácilmente accesible y resulta sencillo componerlo.

Aspecto: Tiende a ser propiedades que afectan el rendimiento o la semántica de los componentes en forma sistemática. Ejemplo: sincronización, logging, distribución, etc.)

La diferencia entre un componente y un aspecto es que el primero se puede encapsular claramente en un procedimiento, mientras que un aspecto no se puede encapsular en un procedimiento con los lenguajes tradicionales.

Page 5: Programación Orientada a Aspectos (POA) Paradigma de programación. Presentado por Presentado por: Linda Arvelo Sistemas Distribuidos. Universidad Simón.

Elementos básicos de la POA

Aspecto:“Un aspecto es una unidad modular que se dispersa 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”.

Algunos ejemplos de aspectos son, los patrones de acceso a memoria, la sincronización de procesos concurrentes, el manejo de errores, etc.

Page 6: Programación Orientada a Aspectos (POA) Paradigma de programación. Presentado por Presentado por: Linda Arvelo Sistemas Distribuidos. Universidad Simón.

Punto de Unión (joinpoint):Están definidos como una clase especial de interfaz entre los aspectos y el código base, se podría decir que son puntos que representa un "momento" en la ejecución de un programa. Por ejemplo, una llamada a un método, o un constructor, o el acceso a un miembro de una clase en particular.

Intersección o Puntos de Corte (pointcut):Los puntos de corte en sí son una declaración de un conjunto de puntos de unión, los cuales son parte de los aspectos e indican en que puntos de unión se aplicará el aspecto.

Consejo o Avisos (advice):Un aviso define el comportamiento que se quiere invocar cuando se alcance un determinado punto de intersección o de corte, es decir, son las acciones a tomar en esos puntos de unión.

…Continuación

Page 7: Programación Orientada a Aspectos (POA) Paradigma de programación. Presentado por Presentado por: Linda Arvelo Sistemas Distribuidos. Universidad Simón.

Weaving o Tejedor:Permite tejer los aspectos en el código base. Se clasifican en dos tipos, definidos según el momento en el que introducen los mecanismos para decidir sobre la aplicación de dichos aspectos:EstáticosDinámicos

Concern:Es una funcionalidad a implementar en el sistema.

…Continuación

Cross-Cutting Concerns:Se refieren determinadas funcionalidades que afectan al conjunto de sistema, ejemplos:Trazas o logging.Política de seguridad.Transacciones.

Page 8: Programación Orientada a Aspectos (POA) Paradigma de programación. Presentado por Presentado por: Linda Arvelo Sistemas Distribuidos. Universidad Simón.

ProgramaPrograma

Aspectos en interacción con el programa base

Page 9: Programación Orientada a Aspectos (POA) Paradigma de programación. Presentado por Presentado por: Linda Arvelo Sistemas Distribuidos. Universidad Simón.

Implementación de los lenguajes tradicionales

Leng

uaje

Programa

Compilador

Usuario

Page 10: Programación Orientada a Aspectos (POA) Paradigma de programación. Presentado por Presentado por: Linda Arvelo Sistemas Distribuidos. Universidad Simón.

Estructura de una implementación en los lenguajes de aspectos

Lenguaje base

Compilador

Usuario

Programa de componentes

Programa de Aspectos 1

Programa de Aspectos 2

Lenguaje de aspectos

Weaving

Page 11: Programación Orientada a Aspectos (POA) Paradigma de programación. Presentado por Presentado por: Linda Arvelo Sistemas Distribuidos. Universidad Simón.

Un código menos enmarañado, más natural y más reducido.

Mayor facilidad para razonar sobre los conceptos, ya que están separados y las dependencias entre ellos son mínimas.

Un código más fácil de depurar y más fácil de mantener.

Se consigue que un conjunto grande de modificaciones en la definición de una materia tenga un impacto mínimo en las otras.

Se tiene un código más reusable y que se puede acoplar y desacoplar cuando sea necesario.

Algunas de las ventajas que presenta la POA son:

Page 12: Programación Orientada a Aspectos (POA) Paradigma de programación. Presentado por Presentado por: Linda Arvelo Sistemas Distribuidos. Universidad Simón.

También existen desventajas a la hora de utilizar POA, algunas de estas son:

El diseño de los puntos de enlace entre los aspectos es más complejo.

Se debe tener en cuenta el análisis de nuevas características dentro del desarrollo de sistemas.

Surgen nuevos problemas de choque entre el lenguaje base y el lenguaje funcional.

Pueden existir problemas de herencia de un aspecto a otro.

Page 13: Programación Orientada a Aspectos (POA) Paradigma de programación. Presentado por Presentado por: Linda Arvelo Sistemas Distribuidos. Universidad Simón.

package ejemplo;

public class HelloWorld {public static void main(String[]

args) {HW H; H= new HW();H.showMensaje();

}}

package ejemplo;

public class HW {private String mensaje; public HW() {

this.mensaje = “Hello World";}public void setMensaje(String M){

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

return this.mensaje;}public void showMensaje(){

System.out.println(this.mensaje);}

}

package ejemplo;

public aspect Aspecto {pointcut mensajesAImprimir() : call (void

HW.showMensaje());

before(): mensajesAImprimir(){ System.out.println(“Hola a todos"); }after(): mensajesAImprimir(){ System.out.println(“Chao a todos"); }

}