Introducción a la programación orientada a aspectos.

25
Introducción a la programación orientada a aspectos. Sesión 3 Universidad del Azuay Maestría en Telemática

description

Introducción a la programación orientada a aspectos. Universidad del Azuay Maestría en Telemática. Sesión 3. Desventajas:. Unidades de descomposición no tratan aspectos como: No se considera gestión de memoria Coordinación Distribución Ejecución en tiempo real. Desventajas:. - PowerPoint PPT Presentation

Transcript of Introducción a la programación orientada a aspectos.

Introducción a la programación orientada a

aspectos.

Sesión 3

Universidad del Azuay

Maestría en Telemática

Desventajas:

• Unidades de descomposición no tratan aspectos como:

• No se considera gestión de memoria

• Coordinación

• Distribución

• Ejecución en tiempo real.

Desventajas: Sincronización Distribución Manejo de errores Optimización de memoria Gestión de la seguridad

Consecuencia:

Nos encontramos con problemas de programación en los cuales ni las técnicas funcionales, ni las orientadas a objeto son suficientes para capturar todas las decisiones de diseño que el programa debe implementar.

Consecuencias:

Las técnicas tradicionales no soportan bien la separación de competencias para aspectos distintos de la funcionalidad básica de un sistema, y esta situación claramente tiene un impacto negativo en la calidad del software.

P.O.A. La programación orientada a aspectos (POA)

es una nueva metodología de programación que aspira a soportar la separación de competencias para los aspectos antes mencionados.

Intenta separar los componentes y los aspectos unos de otros, proporcionando mecanismos que hagan posible abstraerlos y componerlos para formar todo el sistema.

P.O.A. (2)

Lo que se persigue es implementar una aplicación de forma eficiente y fácil de entender.

POA es un desarrollo que sigue al paradigma de la orientación a objetos, soporta la descomposición orientada a objetos, además de la procedimental y la descomposición funcional.

A pesar de esto, POA no se puede considerar como una extensión de la POO, ya que puede utilizarse con los diferentes estilos de programación antes mencionados.

P.O.A.(3)

El estado actual de la investigación en POA es análogo al que había hace veinte años en la programación orientada a objetos.

Historia 1991. Equipo Demeter. Programación

adaptativa. C ristina Lopes propuso sincronización e invocación remota como nuevos bloques.

1995. Equipo Demeter introduce el término.

P.O.A. presentado por Gregor Kiczales y su grupo & Cristina Lopes.

Objetivos: Separar conceptos:

cada decisión se tome en un lugar concreto.

Minimizar las dependencias entre ellos: pérdida del acoplamiento entre los

distintos elementos.

Ventajas de la P.O.A. Un código menos enmarañado, más natural y más

reducido. Una mayor facilidad para razonar sobre las materias,

ya que están separadas y tienen una dependencia mínima.

Más facilidad para depurar y hacer modificaciones en el código.

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 reutilizable y que se puede acoplar y desacoplar cuando sea necesario.

¿Qué es un aspecto?

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).

¿Qué es un aspecto? De manera más informal podemos decir

que los aspectos son la unidad básica de la POA, y pueden definirse como las partes de una aplicación que describen las cuestiones claves relacionadas con la semántica esencial o el rendimiento.

También pueden verse como los elementos que se diseminan por todo el código y que son difíciles de describir localmente con respecto a otros componentes.

Diferencia entre componente y aspecto

Se puede diferenciar entre un componente y un aspecto viendo al primero como aquella propiedad que se puede encapsular claramente en un procedimiento, mientras que un aspecto no se puede encapsular en un procedimiento con los lenguajes tradicionales.

Justificación

Las técnicas orientadas a objetos y las técnicas procedimentales de programación no son suficientes para capturar con claridad importantes desiciones de diseño que debe implementar el programa.

Justificación Las decisiones que difícilmente son

capturadas por las OOP y POP se denominan aspectos.

La técnica de P.O.A. Permite especificar claramente aspectos tales como asilamiento, composición y reutilización del código.

Fundamentos

El proceso del diseño del software: Dividir un sistema en partes pequeñas. Los lenguajes permiten definir abstracciones de

las subunidades del sistema. La composición de abstracción permite

construir el sistema en su totalidad. La abstracción y composición debe soportar

con claridad las unidades de diseño del sistema.

Fundamentos Lenguajes procedimentales

generales (GP). Descomposición Funcional: Dividen el

sistema en unidades de comportamiento o función.

Muchas de estas funciones pueden no ser del todo funcionales.

Programación Orientada a Aspectos

Se evalúan tres implementaciones: Fácil de entender pero ineficiente Eficiente pero difícil de entender POA: fácil y eficiente.

Procesamiento de imágenes en blanco y negro.

Procesamiento de imágenes en blanco y

negro.

Imágenes pasan por filtros para producir una salida.

Fácil de desarrollar y mantener Uso eficiente de memoria Formal: para ampliar libre de errores

en el programa. Eficiente: optimizar almacenamiento

de memoria y direccionamiento.

Bibliografía Antonia Mª Reina Quintero, Visión

General de la Programación Orientada a Aspectos. Departamento de Lenguajes y Sistemas Informáticos. Facultad de Informática y Estadística Universidad de Sevilla. (2000).