Professional Documents
Culture Documents
ndice
1. 2. 3. 4. 5. 6. 7. Introduccin Qu es un aspecto? Fundamentos de la POA Tejiendo Clases y Aspectos Tendencias en los Lenguajes de Aspectos Ejemplo Los Aspectos en la Etapa de Diseo
Introduccin
Historia de la programacin:
1 generacin:
Cdigo Espaghetti
Introduccin
Historia de la programacin:
1 generacin:
Introduccin
Historia de la programacin:
1 generacin:
Introduccin
Historia de la programacin:
5 generacin?: Descomposicin en Aspectos
Introduccin
Ventajas de la POA:
Cdigo menos enmaraado, ms natural y reducido Facilidad para razonar sobre las materias Facilidad para depurar y modificar cdigo Impacto mnimo en modificaciones Cdigo ms reutilizable
Qu es un aspecto?
Primera definicin: Unidad que se define en trminos de informacin parcial de otras unidades. Definicin actual (G. Kiczales):
Unidad modular que se disemina por la estructura de
otras unidades funcionales. Los aspectos existen tanto en la etapa de diseo como en la de implementacin. Un aspecto de diseo es una unidad modular del diseo que se entremezcla en la estructura de otras partes del diseo. Un aspecto de programa o de cdigo es una unidad modular del programa que aparece en otras unidades modulares del programa
Qu es un aspecto?
Definicin informal:
Es la unidad bsica de la POA Partes de una aplicacin que describen las cuestiones
claves relacionadas con la semntica esencial o el rendimiento Los aspectos no suelen ser unidades de descomposicin funcional del sistema, sino propiedades que afectan al rendimiento o la semntica de los componentes. Algunos ejemplos de aspectos son, los patrones de acceso a memoria, la sincronizacin de procesos concurrentes, el manejo de errores, etc.
Qu es un aspecto?
Estructura de un programa en la POA:
Qu es un aspecto?
Comparativa entre un programa tradicional y un programa orientado a aspectos:
Fundamentos de la POA
Para poder programar en el paradigma de Aspectos se necesita:
Lenguaje
Java,...) Uno o varios lenguajes de aspectos (COOL, AspectJ,...) Un tejedor de aspectos que una la funcionalidad bsica con los aspectos
Fundamentos de la POA
especfico
Lenguajes de aspectos de propsito
general
10
Creado por Xerox para la sincronizacin de hilos Lenguaje base: versin restringida de Java (elimina Programa COOL: conjunto de mdulos coordinadores Cada coordinador define una estrategia de sincronizacin, que puede ser utilizada por varias clases del lenguaje base Los coordinadores conocen a las clases que sincronizan, pero las clases no saben de la existencia de los coordinadores
COOL
11
Elementos de un aspecto:
Cortes (poincut) Introducciones (introduction) Avisos (advice)
12
Cortes (poincut):
Capturan eventos en la ejecucin de un programa Tipos de eventos capturados: invocaciones de
mtodos o constructores, sealizacin y gestin de excepciones Definen el cdigo de los aspectos usando avisos (advice)
Cortes (poincut):
Estructura de un corte:
Nombre y contexto Eventos del corte (designadores)
13
Tipos de aviso: before, after, catch, finally, around Los avisos se puede definir mediante cortes con nombre o cortes annimos
Annimo
14
15
16
17
18