PROGRAMACIÓN ORIENTADA A ASPECTOS

Just an initial demo map, so that you don't start with an empty map list ...

Get Started. It's Free
or sign up with your email address
Rocket clouds
PROGRAMACIÓN ORIENTADA A ASPECTOS by Mind Map: PROGRAMACIÓN ORIENTADA A ASPECTOS

1. DESARROLLO

1.1. AspectJ

1.1.1. Es una extensión Java del proyecto Eclipse para ayudar en el desarrollo orientado a aspectos.

1.2. Aspect

1.2.1. Un módulo Perl disponible en CPAN para la Programación Orientada a Aspectos (en inglés).

1.3. AOP con SpringFramework 2.5

1.3.1. Es un Framework de Java que permite programar en el paradigma de Aspectos utilizando Anotación Java.

1.4. Aspyct AOP

1.4.1. Es un módulo de Python que permite incluir Programación orientada a Aspectos a programas ya existentes escritos en Python o a nuevos desarrollos.

2. DEFINICIONES

2.1. Aspecto

2.1.1. Funcionalidad transversal que se va a implementar de forma modular y separada del resto del sistema.

2.2. Join point

2.2.1. Punto de ejecución dentro del sistema donde un aspecto puede ser conectado, como una llamada a un método, el lanzamiento de una excepción o la modificación de un campo.

2.3. Advice

2.3.1. Implementación del aspecto, es decir, contiene el código que implementa la nueva funcionalidad.

2.4. Pointcut

2.4.1. Define los Consejos que se aplicarán a cada Punto de Cruce.

2.5. Introduction

2.5.1. Permite añadir métodos o atributos a clases ya existentes.

2.6. Target

2.6.1. Es la clase aconsejada, la clase que es objeto de un consejo.

2.7. Proxy

2.7.1. Es el objeto creado después de aplicar el Consejo al Objeto Destinatario.

2.8. Weaving

2.8.1. Es el proceso de aplicar Aspectos a los Objetos Destinatarios para crear los nuevos Objetos Resultantes en los especificados Puntos de Cruce.

3. VENTAJAS

3.1. Código reusable que se puede acoplar y desacoplar según la necesidad.

3.2. Facilidad para depurar y modificar el código.

3.3. Facilidad para razonar sobre las materias, ya que estan separadas y tienen una dependencia mínima.

3.4. Código mas natural y reducido.

3.5. Permite la separación de conceptos y agregar nuevos aspectos, modificar y remover aspectos existentes facilmente.

4. DESVENTAJAS

4.1. Posibles choques entre el código funcional, expresado en lenguaje base y el código de aspectos , expresado en los lenguajes de aspectos.

4.2. Posibles choques entre los aspectos

4.3. Posibles choques entre el código de aspectos y los mecanismos de lenguajes.

5. OBJETIVOS

5.1. Separar conceptos y minimizar dependencias entre ellos.

5.2. Reducir la complejidad de las aplicaciones a niveles manejables para las personas.

6. EVOLUCIÓN DE LA ING. DEL SOFTWARE

6.1. GENERACIÓN

6.1.1. CÓDIGO SPAGETTI

6.1.1.1. Mezcla funciones y datos.

6.1.2. DESCOMPOSICIÓN FUNCIONAL

6.1.2.1. Separado por funciones.

6.1.3. DESCOMPOSICIÓN EN OBJETOS

6.1.3.1. Organiza por datos y se mezclan funciones.

6.1.4. DESCOMPOSICIÓN EN ASPECTOS

6.1.4.1. Se separan datos y funciones.