Académique Documents
Professionnel Documents
Culture Documents
En su edicin especial del nuevo milenio, (en febrero 2001), la revista MIT Technology Review, lanza su top ten. 10 emerging areas of technology that will soon have a profound impact on the economy and how we live and work in the new millennium
10..6
10 9 8 7
Brain-Machine Interfaces: entender como trabaja el cerebro. Manejo de los derechos digitales. Biometrics: identificacin a travs de huellas digitales, retina, facciones.
5...4
5
Procesamiento del lenguaje natural: reconocimiento de voz, extraccin de informacin. Microfluidos: tcnicas especializadas para un anlisis mas veloces y precisos.
3
2
Nmero 1
Evolucin del SW
Grficamente
Antes
En la actualidad
De todas maneras.
Se encapsula correctamente la funcionalidad del sistema. Pero qu ocurre con los conceptos no funcionales .? Sincronizacin, logging, manejo de errores, profiling, etc => no se encapsulan correctamente y quedan esparcidos por todo el sistema. Se denominan conceptos entrecruzados
Ejemplo 1
Clase Libro { .. <todas las cosas de libro> <manejo de errores> }
Conceptos entrecruzados
* Errores * Seguridad
Clase Socio { .. <todas las cosas de socio> <manejo de errores> <controles de acceso> }
Clase Alquiler {.. <todas las cosas de alquiler> <manejo de errores> <controles de acceso> }
Anlisis Ejemplo
Funcionalida bsica: OK. Libros, Socios, Alquileres. Qu pasa con el manejo de errores y de seguridad? Se esparcen por todo el sistema, creando dos problemas: Code Tangling & Code Scaterring
Problemas
Baja correspondencia. Menor Productividad. Menor Reuso. Baja calidad del cdigo. Evolucin dificultosa.
Descomponer por forma, por color, por tamao. Nos vemos obligados a elegir un modelo como principal.
Distintos Modelos
Jerarqua Color-Forma
Nos vemos obligados a elegir un modelo como principal. En este caso: color, y luego forma
POA
Un aspecto es un concepto que no es posible encapsularlo claramente, y que resulta diseminado por todo el cdigo. Un aspecto ser la unidad que encapsular un concepto entrecruzado.
Conceptos POA
Aplicando POA se puede escribir una funcionalidad bsica pura, y especificar cada aspecto por separado. Luego, existe un proceso de combinacin que compondr el sistema final.
Los puntos de enlace brindan la interfaz entre aspectos y componentes. Son lugares dentro del cdigo donde es posible agregar comportamiento adicional. El comportamiento adicional puede agregarse en tres momentos particulares: antes, despus, en lugar de .
El encargado de la composicin es llamado Weaver. Guiado por los puntos de enlace teje el cdigo base con el cdigo de los aspectos.
Estructura
Estructura Tradicional
PROGRAMA
Lenguaje
Compilador o Intrprete
EJECUTABLE
Estructura POA
PROGRAMA DE COMPONENTES PROGRAMA DE ASPECTOS 1
Lenguaje base
Lenguaje de aspectos 1
... ...
PROGRAMA DE ASPECTOS N
Lenguaje de aspectos N
TEJEDOR (WEAVER)
EJECUTABLE
Ejemplo 2: biblioteca
Class Biblioteca { private libro [] libros ; private socio [] socios; public Biblioteca() { public void prestamo( socio S, libro L) { if controlDeAccesoValido() then{ // cdigo del mtodo } else{ generarExcepcion(); } }
Definicin de un aspecto
Aspecto Control { Punto de enlace operacionesSeguras = llamadas a Biblioteca.prestamo & llamadas a Biblioteca.ingresarSocio& ...
antes de operacionesSeguras: { if !=(controlDeAccesoValido()) then{ generarExcepcion(); }
Ejemplo TFTP
Se implement con AspectJ el protocolo de comunicacin TFTP. Protocolo muy simple para transferir archivos entre procesos Reingeniera y Aspecto de Logging. Cdigo de logging: 31%.
Clase A
Mtodo 1
Mtodo 2
De donde venimos?
El grupo de PA en Boston, quera hacer cdigo segn la ley de demeter. Cristina Videira Lopes miembro Ph.D introduce Separations of Concerns. En 1995 Cristina se une en Xerox Park, con Gregor Kiczales. En noviembre nace la sigla AOP. En 1998 sale la 1 versin de AspectJ, implementado dos lenguajes de Cristina.
Historia en Imgenes
Herramientas OA
Lenguajes para programar Aspectos: AspectJ: Extensin a Java para aplicar aspectos. La ms popular. AspectC++,AspectS, CAESAR. En .NET: Weave.NET, Source Weave. SetPoint: Framework en .NET. Basado en la semntica y no en la sintaxis.
Si bien al principio todo era programar, los conceptos AOP se trasladaron a todo el proceso de Software. por lo tanto: AORE: Aspect Oriented Requirement Engineering. Arquitectura OA AOD: Aspect Oriented Design. Extensiones a UML para soportar el manejo de aspectos en la etapa de diseo. Extensiones Generales y Especficas.
www.aosd.net
dependex.dc.uba.ar
dependex.dc.uba.ar/~ferto/ www.angelfire.com/ri2/aspectos
Comunidad de Aspectos
Diseo OA
No se banca bien los aspectos. Se extiende UML para tal fin. Extensiones al metamodelo. Extensiones con mecanismos propios. OCL para restricciones: joinpoints.
Extensiones al metamodelo
Extensiones Especficas
Se maneja con los mecanismos propios de extensin de UML: estereotipos, restricciones, y valores etiquetados.
Ejemplo para aspecto de distribucin
Conclusiones
AORE
= Trato para los req. funcionales y no. Reconocer que los req. se entrecruzan e influyen entre s. Fundamental contar con slidos mecanismos de composicin
Arquitectura OA
Pequesimas aproximaciones y Herramientas. El rea ms tmida de desarrollo hoy da. Mostr til y viable un lenguaje de arquitectura OA. Creciente consenso en la comunidad para separar las vistas.
Diseo OA
Medios para modelar explcitamente los aspectos. Razonar sobre los concerns por separado. Manejo de combinacin & composicin. Resolver conflictos y especificar cooperacin.