SlideShare uma empresa Scribd logo
1 de 31
Aspectos en Capa Media

Lenin David Lozano Argel
Director de Ingenieria – Avansoft S.A.
Especialista en Desarrollo de Software – EAFIT
Para romper el hielo!!!

  Es AOP realmente un nuevo paradigma de
   programación o es solo otra técnica de optimización
   basada en lenguajes existentes.
  Como resuelve la complejidad de los lenguajes
   existentes?
  Parece que sumando la separación de código entre el
   aspecto y el componente se incrementa la complejidad
   de todo el sistema.
AOP es una técnica de programación que apunta a lograr mejor
modularización por la separación de intereses cruzados.
LA OPTIMIZACIÓN NO ES SU META PRINCIPAL.
AOP ayuda a resolver la complejidad del diseño del software.
Interceptor Pattern
 Variante del patrón Cadena de Responsabilidad.
 No toda la funcionalidad de un sistema puede
  ser anticipada.
 Permite extender el software.
     Registrando nuevos servicios al sistema.
  
      Permitiendo que el sistema dispare estos servicios.
  
      Permitiendo que estos servicios accedan al estado
      interno del sistema y controle su comportamiento.
Intercepting Filter
 Se requiere un pre-procesamiento y un post-
  procesamiento de unas peticiones o respuestas de un
  cliente Web.
 Se debería facilitar la adición o eliminación de sevicios
  sin afectar a los componentes existentes, para que se
  puedan utilizar en gran variedad de combinaciones,
  como
   
       Logging y autenticación.
   
       Depuración y transformación de la salida para un cliente
       específico.
   
       Descompresión y conversión del esquema de codificación de la
       entrada.
Intercepting Filter
 Crear filtros conectables para procesar servicios
  comunes de una forma estándar sin requerir cambios en
  el código principal del procesamiento de la petición. Los
  filtros interceptan las peticiones entrantes y las
  respuestas salientes, permitiendo un pre y post-
  procesamiento.
Interceptor vs AOP
 Creen que AOP esta siendo mal usado en
  casos en los cuales un patrón Interceptor
  puede ser usado?
Agenda


1. Introducción a Middleware
1. Introducción a Middleware

2. Introducción a Características de
2. Introducción a Características de
Middleware Aspectual
Middleware Aspectual
CRI Middleware Co., Ltd.
Conceptos sobre Middleware

 Término usado para referirse a los
  componentes de software que
  actúan como intermediarios entre
  otros componentes de software,
  generalmente, en el marco de la
  interacción cliente/servidor.

 Ejemplos típicos son los programas
  desarrollados para ejecutar las
  consultas que diferentes usuarios de
  la red hacen a una base de datos
  central que está ubicada en el
  servidor.
Funciones del Middleware

 Ocultar implementación.
 Ocultar Heterogeneidad.
 Proveer interfaces de alto nivel a los desarrolladores e
  integradores.
 Proveer un conjunto de servicios comunes.
 Hacer el desarrollo de aplicaciones mas fácil y rápido.




                                                  CRI Middleware Co., Ltd.
Discusión
 Que valor agregado puede dar AOP a la
  organización?
 Como deben los desarrolladores y
  gerentes decidir donde adoptar AOP?
 Que están haciendo las compañías con
  AOP?
Advertencia
 Aspect Oriented PROGRAMMING no es
  magia.
 Es “solo” una mejor forma de soportar el
  crosscutting code.
Término: Crosscutting


 Es una relación entre representaciones de
  concerns.



   Un concern es un
    problema que se
  intenta resolver con
        software.
Problemas del crosscutting
 Codigo Esparcido y Enmarañado:
  
      Trazabilidad Pobre.
     Productividad Mas Baja.
  
      Menor reuso del código.
     Pobre Calidad de Código.
     Evolución mas difícil.
Término: Aspecto


 Un ASPECTO es una representación modular de un
  crosscutting concern.
 Un aspecto es un MODULO para el lenguaje aspectual.
 Es el modulo que almacena las declaraciones que
  “identifican join points” y “efectos semánticos en esos join
  points”.
Término: Weaving

 El mecanismo por el cual
  se combinan los aspectos
  con el código base.
 Puede hacerse en
  distintos momentos de la
  vida de un programa
 Rango de Tiempo:
    Estático:


        Compilación
        Post-compilación
   
     Dinámico:
        Load Time
        Runtime.
Término: Join Point

 Describe en que puntos
  principales de la aplicación los
  aspectos pueden ser
  compuestos con el resto del
  software.
 Son puntos en la ejecución del
  programa, no posiciones en el
  código.
 Elementos del lenguaje de
  programación con los cuales se
  coordinan los aspectos.
    Llamada a método

    Ejecución de método
Término: Pointcut

 Una afirmación que es cumplida por un
  conjunto de puntos de unión.
 Representan conjuntos de join points.
 Puede exponer información en tiempo de
  ejecución a un pedazo de advice.
 Mecanismo en el cual se discrimina donde y
  cuando se aplicará el advice.
Término: Advice

 un consejo (advice), que indica qué es lo
  que hay que hacer en los join points.
                                                   Advice
 Existen 3 tipos:                                 JoinPoint
                                             Código
    Before: Ejecuta antes de la ejecución
                                              Base
     de un Join Point.
    After: Ejecuta después de la ejecución.
                                                             Aspecto
                                             Código
    Around: Rodea la ejecución del join      Base     JoinPoint
     point.
 ¡Que se adiciona o que hacer en vez de
  eso!
                                                      PointCut
Consideraciones

 Aspectos Dinámicos: Se aplican los aspectos en compilación, o
  se adicionan o remueven dinámicamente? (Cuando debemos hacer
  el tejido?)
 Genericidad: Los aspectos se refieren a elementos en el sistema
  en cuestión, o pueden ser reutilizados por varios sistemas?
 Eficiencia (Performance) versus Expresividad (Sintaxis de
  Aspectos)
 Correctitud y Validación: Como especificar y verificar/probar los
  aspectos?
Pasos en desarrollo AOP
 AOP involucra tres distintos pasos en el
  desarrollo:
  Descomposición Aspectual:
       Descomponer los requisitos para identificar
        intereses cruzados y comunes.
  Implementación de los “Concerns”:
       Implementar cada interés separadamente.
  Tejido:
       Componer el sistema final.
Anatomía de los lenguajes
 Una implementación de AOP consta de 2
  partes: una especificación del lenguaje y una
  implementación.
  
      Implementación de “concerns”:
        Mapear un requisito individual a un código para que el
         compilador lo traduzca a código ejecutable.
     Tejido de las reglas:
        Como se compone los intereses independientemente
         implementados para formar el sistema final.
 Implementación del lenguaje AOP.
  1. Combina los concerns individuales.
  2. Convierte la información resultante en código ejecutable.
Evaluación de Frameworks



 Como elegir un middleware o
  framework adecuado para tu
  problema?
Criterios de evaluación
Criterios de evaluación Generales


 Determina la confiabilidad y
  la funcionalidad que cada
  middleware ofrece.

   
       Información Disponible

   
       Tipo de Licencia

      Madurez
Criterios de evaluación Aspectuales

  Evalúa el tratamiento aspectual
   que cada Middleware le da al
   proceso de desarrollo de software
   orientado a aspecto, por lo tanto
   los criterios descritos se
   componen con los conceptos de
   los fundamentos AOP

  Modelo de tejido
  Modelo de programación AO
  Modelo de Join Point
Criterios de evaluación Desarrollo


 Determinan el éxito y la facilidad
  de realizar un buen proceso del
  desarrollo del software basado
  en aspectos.

 Soporte de Herramientas IDE

 Sintaxis de los aspectos
Criterios de evaluación QoS

 Determinan un conjunto de
  característica o atributos
  calidad que garantizan que un
  Middleware cumple con
  ciertos estándares
  preestablecidos.
 QoS del Middleware

 Extensibilidad/Adaptabilidad

 Integración con el proceso de
  desarrollo
 Reusabilidad de aspectos
AOP: THE REAL DEAL?
 Existe algún ejemplo de aspectos
  aplicados a lenguajes de programación
  funcionales?
 Jboss
 Boeing

Mais conteúdo relacionado

Mais procurados

Programación Orientada a Aspectos - Fernando Córdoba
Programación Orientada a Aspectos - Fernando CórdobaProgramación Orientada a Aspectos - Fernando Córdoba
Programación Orientada a Aspectos - Fernando Córdoba
2008PA2Info3
 
Programacion Modular
Programacion ModularProgramacion Modular
Programacion Modular
guestb97266b9
 
Características del lenguaje de programación
Características del lenguaje de programaciónCaracterísticas del lenguaje de programación
Características del lenguaje de programación
oviedospablo
 
Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de software Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de software
Joan Manuel Zabala
 
Clase 05a calidad verificacion validacion
Clase 05a calidad verificacion validacionClase 05a calidad verificacion validacion
Clase 05a calidad verificacion validacion
Demián Gutierrez
 
Construccion y Pruebas de Software
Construccion y Pruebas de SoftwareConstruccion y Pruebas de Software
Construccion y Pruebas de Software
Gustavo Bazan Maal
 
Desarrollo SW Basado en Componentes
Desarrollo SW Basado en ComponentesDesarrollo SW Basado en Componentes
Desarrollo SW Basado en Componentes
toryneutral
 

Mais procurados (20)

Check listsa
Check listsaCheck listsa
Check listsa
 
Ciclo de vida
Ciclo de vidaCiclo de vida
Ciclo de vida
 
Creación de Frameworks para Automation: Las básicas (meet up automation UY Ag...
Creación de Frameworks para Automation: Las básicas (meet up automation UY Ag...Creación de Frameworks para Automation: Las básicas (meet up automation UY Ag...
Creación de Frameworks para Automation: Las básicas (meet up automation UY Ag...
 
Programación Orientada a Aspectos - Fernando Córdoba
Programación Orientada a Aspectos - Fernando CórdobaProgramación Orientada a Aspectos - Fernando Córdoba
Programación Orientada a Aspectos - Fernando Córdoba
 
Programacion Modular
Programacion ModularProgramacion Modular
Programacion Modular
 
3.creacion de componentes visuales
3.creacion de componentes visuales3.creacion de componentes visuales
3.creacion de componentes visuales
 
Modelos de procesos de software(completo)
Modelos de procesos de software(completo)Modelos de procesos de software(completo)
Modelos de procesos de software(completo)
 
Introduccion programacion
Introduccion programacionIntroduccion programacion
Introduccion programacion
 
Características del lenguaje de programación
Características del lenguaje de programaciónCaracterísticas del lenguaje de programación
Características del lenguaje de programación
 
Componentes
ComponentesComponentes
Componentes
 
Aplicaciones robustas con Programación Orientada a Aspectos
Aplicaciones robustas con Programación Orientada a AspectosAplicaciones robustas con Programación Orientada a Aspectos
Aplicaciones robustas con Programación Orientada a Aspectos
 
Aguilar alegría carlos
Aguilar alegría carlosAguilar alegría carlos
Aguilar alegría carlos
 
Software
SoftwareSoftware
Software
 
Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de software Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de software
 
Clase3b especificacion qualityattributesyqaw
Clase3b especificacion qualityattributesyqawClase3b especificacion qualityattributesyqaw
Clase3b especificacion qualityattributesyqaw
 
BoLeTiN N° 2
BoLeTiN N° 2BoLeTiN N° 2
BoLeTiN N° 2
 
Clase 05a calidad verificacion validacion
Clase 05a calidad verificacion validacionClase 05a calidad verificacion validacion
Clase 05a calidad verificacion validacion
 
Construccion y Pruebas de Software
Construccion y Pruebas de SoftwareConstruccion y Pruebas de Software
Construccion y Pruebas de Software
 
Sqm
SqmSqm
Sqm
 
Desarrollo SW Basado en Componentes
Desarrollo SW Basado en ComponentesDesarrollo SW Basado en Componentes
Desarrollo SW Basado en Componentes
 

Semelhante a Aspect Oriented Programming Middleware

Sanchez garcia juan jose definiciones en la ingeniería de software sis4-1
Sanchez garcia juan jose  definiciones en la ingeniería de software sis4-1Sanchez garcia juan jose  definiciones en la ingeniería de software sis4-1
Sanchez garcia juan jose definiciones en la ingeniería de software sis4-1
Jose Garcia
 
Tecnicas de ingenieria de software
Tecnicas de ingenieria de softwareTecnicas de ingenieria de software
Tecnicas de ingenieria de software
'Jorge Martinez
 
Seleccion de tecnicas de ingenieria de software
Seleccion de tecnicas de ingenieria de softwareSeleccion de tecnicas de ingenieria de software
Seleccion de tecnicas de ingenieria de software
Ingris Argueta
 
Fundamentos para el diseño de un software
Fundamentos para el diseño de un softwareFundamentos para el diseño de un software
Fundamentos para el diseño de un software
ssalzar
 
Trabajo 2 exposicion
Trabajo 2 exposicionTrabajo 2 exposicion
Trabajo 2 exposicion
Evelin Oña
 
Taller n20 compiladores_optimizacion_codigo_1_julio_2021
Taller n20 compiladores_optimizacion_codigo_1_julio_2021Taller n20 compiladores_optimizacion_codigo_1_julio_2021
Taller n20 compiladores_optimizacion_codigo_1_julio_2021
Bryan Chasiguano
 
Edwin alexande mata escobar
Edwin alexande mata escobarEdwin alexande mata escobar
Edwin alexande mata escobar
Edwin Alexander
 

Semelhante a Aspect Oriented Programming Middleware (20)

Sanchez garcia juan jose definiciones en la ingeniería de software sis4-1
Sanchez garcia juan jose  definiciones en la ingeniería de software sis4-1Sanchez garcia juan jose  definiciones en la ingeniería de software sis4-1
Sanchez garcia juan jose definiciones en la ingeniería de software sis4-1
 
Inf 162
Inf 162Inf 162
Inf 162
 
Tecnicas de ingenieria de software
Tecnicas de ingenieria de softwareTecnicas de ingenieria de software
Tecnicas de ingenieria de software
 
Introducción A La Orientación A Aspectos - Programador PHP
Introducción A La Orientación A Aspectos - Programador PHPIntroducción A La Orientación A Aspectos - Programador PHP
Introducción A La Orientación A Aspectos - Programador PHP
 
Trabajo de desarrollo desoftware
Trabajo de desarrollo desoftwareTrabajo de desarrollo desoftware
Trabajo de desarrollo desoftware
 
2017.10.16-senati-powerpoint sesion8.pptx
2017.10.16-senati-powerpoint sesion8.pptx2017.10.16-senati-powerpoint sesion8.pptx
2017.10.16-senati-powerpoint sesion8.pptx
 
Modelo cascada
Modelo cascadaModelo cascada
Modelo cascada
 
Seleccion de tecnicas de ingenieria de software
Seleccion de tecnicas de ingenieria de softwareSeleccion de tecnicas de ingenieria de software
Seleccion de tecnicas de ingenieria de software
 
Adrian adrianza
Adrian adrianzaAdrian adrianza
Adrian adrianza
 
Fundamentos para el diseño de un software
Fundamentos para el diseño de un softwareFundamentos para el diseño de un software
Fundamentos para el diseño de un software
 
Programacion Modular
Programacion ModularProgramacion Modular
Programacion Modular
 
Trabajo 2 exposicion
Trabajo 2 exposicionTrabajo 2 exposicion
Trabajo 2 exposicion
 
AOP - OSUM springperu(1era Reunion)
AOP - OSUM springperu(1era Reunion)AOP - OSUM springperu(1era Reunion)
AOP - OSUM springperu(1era Reunion)
 
Taller n20 compiladores_optimizacion_codigo_1_julio_2021
Taller n20 compiladores_optimizacion_codigo_1_julio_2021Taller n20 compiladores_optimizacion_codigo_1_julio_2021
Taller n20 compiladores_optimizacion_codigo_1_julio_2021
 
Edwin alexande mata escobar
Edwin alexande mata escobarEdwin alexande mata escobar
Edwin alexande mata escobar
 
Proceso y diseño de un software
Proceso y diseño  de un   softwareProceso y diseño  de un   software
Proceso y diseño de un software
 
Proceso y diseño de un software
Proceso y diseño  de un   softwareProceso y diseño  de un   software
Proceso y diseño de un software
 
Proceso y diseño de un software
Proceso y diseño  de un   softwareProceso y diseño  de un   software
Proceso y diseño de un software
 
Proceso y diseño de un software
Proceso y diseño  de un   softwareProceso y diseño  de un   software
Proceso y diseño de un software
 
Dpss u3 a2_nigm
Dpss u3 a2_nigmDpss u3 a2_nigm
Dpss u3 a2_nigm
 

Aspect Oriented Programming Middleware

  • 1. Aspectos en Capa Media Lenin David Lozano Argel Director de Ingenieria – Avansoft S.A. Especialista en Desarrollo de Software – EAFIT
  • 2. Para romper el hielo!!!  Es AOP realmente un nuevo paradigma de programación o es solo otra técnica de optimización basada en lenguajes existentes.  Como resuelve la complejidad de los lenguajes existentes?  Parece que sumando la separación de código entre el aspecto y el componente se incrementa la complejidad de todo el sistema. AOP es una técnica de programación que apunta a lograr mejor modularización por la separación de intereses cruzados. LA OPTIMIZACIÓN NO ES SU META PRINCIPAL. AOP ayuda a resolver la complejidad del diseño del software.
  • 3. Interceptor Pattern  Variante del patrón Cadena de Responsabilidad.  No toda la funcionalidad de un sistema puede ser anticipada.  Permite extender el software.  Registrando nuevos servicios al sistema.  Permitiendo que el sistema dispare estos servicios.  Permitiendo que estos servicios accedan al estado interno del sistema y controle su comportamiento.
  • 4. Intercepting Filter  Se requiere un pre-procesamiento y un post- procesamiento de unas peticiones o respuestas de un cliente Web.  Se debería facilitar la adición o eliminación de sevicios sin afectar a los componentes existentes, para que se puedan utilizar en gran variedad de combinaciones, como  Logging y autenticación.  Depuración y transformación de la salida para un cliente específico.  Descompresión y conversión del esquema de codificación de la entrada.
  • 5. Intercepting Filter  Crear filtros conectables para procesar servicios comunes de una forma estándar sin requerir cambios en el código principal del procesamiento de la petición. Los filtros interceptan las peticiones entrantes y las respuestas salientes, permitiendo un pre y post- procesamiento.
  • 6. Interceptor vs AOP  Creen que AOP esta siendo mal usado en casos en los cuales un patrón Interceptor puede ser usado?
  • 7. Agenda 1. Introducción a Middleware 1. Introducción a Middleware 2. Introducción a Características de 2. Introducción a Características de Middleware Aspectual Middleware Aspectual
  • 8.
  • 10. Conceptos sobre Middleware  Término usado para referirse a los componentes de software que actúan como intermediarios entre otros componentes de software, generalmente, en el marco de la interacción cliente/servidor.  Ejemplos típicos son los programas desarrollados para ejecutar las consultas que diferentes usuarios de la red hacen a una base de datos central que está ubicada en el servidor.
  • 11. Funciones del Middleware  Ocultar implementación.  Ocultar Heterogeneidad.  Proveer interfaces de alto nivel a los desarrolladores e integradores.  Proveer un conjunto de servicios comunes.  Hacer el desarrollo de aplicaciones mas fácil y rápido. CRI Middleware Co., Ltd.
  • 12. Discusión  Que valor agregado puede dar AOP a la organización?  Como deben los desarrolladores y gerentes decidir donde adoptar AOP?  Que están haciendo las compañías con AOP?
  • 13.
  • 14. Advertencia  Aspect Oriented PROGRAMMING no es magia.  Es “solo” una mejor forma de soportar el crosscutting code.
  • 15. Término: Crosscutting  Es una relación entre representaciones de concerns. Un concern es un problema que se intenta resolver con software.
  • 16. Problemas del crosscutting  Codigo Esparcido y Enmarañado:  Trazabilidad Pobre.  Productividad Mas Baja.  Menor reuso del código.  Pobre Calidad de Código.  Evolución mas difícil.
  • 17. Término: Aspecto  Un ASPECTO es una representación modular de un crosscutting concern.  Un aspecto es un MODULO para el lenguaje aspectual.  Es el modulo que almacena las declaraciones que “identifican join points” y “efectos semánticos en esos join points”.
  • 18. Término: Weaving  El mecanismo por el cual se combinan los aspectos con el código base.  Puede hacerse en distintos momentos de la vida de un programa  Rango de Tiempo:  Estático:  Compilación  Post-compilación  Dinámico:  Load Time  Runtime.
  • 19. Término: Join Point  Describe en que puntos principales de la aplicación los aspectos pueden ser compuestos con el resto del software.  Son puntos en la ejecución del programa, no posiciones en el código.  Elementos del lenguaje de programación con los cuales se coordinan los aspectos.  Llamada a método  Ejecución de método
  • 20. Término: Pointcut  Una afirmación que es cumplida por un conjunto de puntos de unión.  Representan conjuntos de join points.  Puede exponer información en tiempo de ejecución a un pedazo de advice.  Mecanismo en el cual se discrimina donde y cuando se aplicará el advice.
  • 21. Término: Advice  un consejo (advice), que indica qué es lo que hay que hacer en los join points. Advice  Existen 3 tipos: JoinPoint Código  Before: Ejecuta antes de la ejecución Base de un Join Point.  After: Ejecuta después de la ejecución. Aspecto Código  Around: Rodea la ejecución del join Base JoinPoint point.  ¡Que se adiciona o que hacer en vez de eso! PointCut
  • 22. Consideraciones  Aspectos Dinámicos: Se aplican los aspectos en compilación, o se adicionan o remueven dinámicamente? (Cuando debemos hacer el tejido?)  Genericidad: Los aspectos se refieren a elementos en el sistema en cuestión, o pueden ser reutilizados por varios sistemas?  Eficiencia (Performance) versus Expresividad (Sintaxis de Aspectos)  Correctitud y Validación: Como especificar y verificar/probar los aspectos?
  • 23. Pasos en desarrollo AOP  AOP involucra tres distintos pasos en el desarrollo: Descomposición Aspectual:  Descomponer los requisitos para identificar intereses cruzados y comunes. Implementación de los “Concerns”:  Implementar cada interés separadamente. Tejido:  Componer el sistema final.
  • 24. Anatomía de los lenguajes  Una implementación de AOP consta de 2 partes: una especificación del lenguaje y una implementación.  Implementación de “concerns”:  Mapear un requisito individual a un código para que el compilador lo traduzca a código ejecutable.  Tejido de las reglas:  Como se compone los intereses independientemente implementados para formar el sistema final.  Implementación del lenguaje AOP. 1. Combina los concerns individuales. 2. Convierte la información resultante en código ejecutable.
  • 25. Evaluación de Frameworks  Como elegir un middleware o framework adecuado para tu problema?
  • 27. Criterios de evaluación Generales  Determina la confiabilidad y la funcionalidad que cada middleware ofrece.  Información Disponible  Tipo de Licencia  Madurez
  • 28. Criterios de evaluación Aspectuales  Evalúa el tratamiento aspectual que cada Middleware le da al proceso de desarrollo de software orientado a aspecto, por lo tanto los criterios descritos se componen con los conceptos de los fundamentos AOP  Modelo de tejido  Modelo de programación AO  Modelo de Join Point
  • 29. Criterios de evaluación Desarrollo  Determinan el éxito y la facilidad de realizar un buen proceso del desarrollo del software basado en aspectos.  Soporte de Herramientas IDE  Sintaxis de los aspectos
  • 30. Criterios de evaluación QoS  Determinan un conjunto de característica o atributos calidad que garantizan que un Middleware cumple con ciertos estándares preestablecidos.  QoS del Middleware  Extensibilidad/Adaptabilidad  Integración con el proceso de desarrollo  Reusabilidad de aspectos
  • 31. AOP: THE REAL DEAL?  Existe algún ejemplo de aspectos aplicados a lenguajes de programación funcionales?  Jboss  Boeing

Notas do Editor

  1. Poor traceability: Modules in a software system may simultaneously interact with several requirements. I Lower productivity: Related implementations spread over many modules. I Less code reuse: A module implements multiple concerns, other systems requiring similar functionality may not be able to readily use the module, further lowering productivity. I Poor code quality: By targeting too many concerns at once, one or more of those concerns will not receive enough attention. I More difficult evolution: Addressing future requirements often requires reworking the implementation.
  2. El mecanismo por el cual se combinan los aspectos con el código base se llama entretejido ( weaving ), y puede hacerse en distintos momentos de la vida de un programa. Una posibilidad es llevar a cabo el entretejido en una etapa de precompilación: se toma el código base y los aspectos, y se produce nuevo código fuente con el resultado del entretejido, insertando los consejos en los puntos de unión correspondiente. También se puede hacer durante la compilación, generando código objeto que cumpla la funcionalidad base más la de los aspectos. Y otra alternativa es el llamado entretejido dinámico, por el cual se controla la ejecución del programa y, cada vez que se llega a un punto de unión incluido en un pointcut de un aspecto, se ejecuta el consejo asociado.
  3. Donde la ejecución del programa alcanza unos de los join points descritos en el pointcut, una pieza asociada con el pointcut se ejecuta. Esto permite a los programadores describir donde y cunado el código adicional debe ser ejecutado adicionalmente al comportamiento definido como base.
  4. .. at Jboss JBoss is leveraging the usage of dynamic AOP in the upcoming 4.* version. All EJB specific services (container managed persistence, acidity, security, fail-over, etc.) will be implemented as aspects, woven at run-time using the AOP support provided by the Jboss micro-kernel. In addition to these services, users (or sites) may provide their own service implementations. Thanks to the Jboss framework for AOP, these new services will become immediately usable in various business applications. ..at ABB Industrial IT is ABB 's solution to integrate diverse automation and information technologies in real time and thus provide better business decision support. The problem is that while a plant is running, it is difficult to instantly access current facts about people, computers and applications scattered throughout the organization. To support this fast adaptability, ABB has developed the Aspect Object (TM) technology. This technology uses Aspect-Orientation concepts to allow different people (such as technicians, engineers) to zoom in at run-time in the functionality of plant and process objects (such as motors and valves) and concentrate on the particular functionality they are interested in. ..at Boeing Boeing is developing real-time embedded systems. Such systems must be customized for particular mission needs. Additionally, global rules (constraints) must be enforced on all parts of a system. Because a system is scattered through many computers and components, it is very costly to maintain and re-adapt the system for each change. Their goal is to deal with such adaptations in a uniform way, and, not surprisingly, they have decided to use aspect oriented techniques. The PCES Project is exploring AOP techniques in this context.