Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Programación Orientada a Aspectos – La verdad desnuda (página 2)




Enviado por Pablo Turmero



Partes: 1, 2, 3

Monografias.com
POA
La POA promueve la separación de conceptos a través de mecanismos, que permiten abstraer y componer estos conceptos a lo largo del sistema.
Un aspecto es un concepto que no es posible encapsularlo claramente, y que resulta diseminado por todo el código.
Un aspecto será la unidad que encapsulará un concepto entrecruzado.

Monografias.com
Conceptos POA
Aplicando POA se puede escribir una funcionalidad básica “pura”, y especificar cada aspecto por separado. Luego, existe un proceso de combinación que compondrá el sistema final.

Los puntos de enlace brindan la interfaz entre aspectos y componentes. Son lugares dentro del código donde es posible agregar comportamiento adicional.

El comportamiento adicional puede agregarse en tres momentos particulares: antes, después, en lugar de .

El encargado de la composición es llamado Weaver. Guiado por los puntos de enlace teje el código base con el código de los aspectos.

Monografias.com
Estructura
Estructura Tradicional

Monografias.com
Estructura POA

Monografias.com
Ejemplo 2: biblioteca
Class Biblioteca {
private libro [] libros ;
private socio [] socios;
 
public Biblioteca() {

public void prestamo( socio S, libro L) {
if controlDeAccesoValido() then{
// código del método
}
else{
generarExcepcion();
}
}

public void ingresarSocio(socio S){
if controlDeAccesoValido() then{
// código del método
}
else{
generarExcepcion();
}
}
// demás métodos…
}

Control de acceso
Funcionalidad básica

Monografias.com
Definición de un aspecto
Aspecto Control {
Punto de enlace
operacionesSeguras = llamadas a Biblioteca.prestamo &
llamadas a Biblioteca.ingresarSocio& …
antes de operacionesSeguras: {
if !=(controlDeAccesoValido()) then{
generarExcepcion();
}
}

Monografias.com
Ejemplo TFTP
Se implementó con AspectJ el protocolo de comunicación TFTP.
Protocolo muy simple para transferir archivos entre procesos
Reingeniería y Aspecto de Logging.
Código de logging: 31%.

Monografias.com

Monografias.com
Relación POA y POO
(Gp:) Clase A
(Gp:) Clase A1
(Gp:) Attb1
Attb2
(Gp:) Método 1
(Gp:) Clase A2
(Gp:) Attb 3
(Gp:) Método 1
Método 2

POO: conceptos comunes
POA: conceptos entrecruzados

Monografias.com
¿De donde venimos?
El grupo de PA en Boston, quería hacer código según 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º versión de AspectJ, implementado dos lenguajes de Cristina.

Monografias.com
Historia en Imágenes

Monografias.com
POA y los demás paradigmas
Mayormente, se utiliza en relación a la POO.
Sin embargo, existen aplicaciones de POA a otros paradigmas también.

Imperativo: Desarrollos y extensiones a C para implementación de SO.
Lógicos: aspectos al estilo ?envio (X,Y). Estilo declarativo, consultas.

Monografias.com
Herramientas OA
Lenguajes para programar Aspectos:
AspectJ: Extensión a Java para aplicar aspectos. La más popular.
AspectC++,AspectS, CAESAR.
En .NET: Weave.NET, Source Weave.
SetPoint: Framework en .NET. Basado en la semántica y no en la sintaxis.

Monografias.com
Todo el ciclo de desarrollo
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 diseño. Extensiones Generales y Específicas.

Verificación, Formalización &Model Checking OA

Monografias.com
Diseño OA
No se banca bien los aspectos.
Se extiende UML para tal fin.
Extensiones al metamodelo.
Extensiones con mecanismos propios.
OCL para restricciones: joinpoints.

Monografias.com
Extensiones al metamodelo

Monografias.com
Extensiones Específicas
Se maneja con los mecanismos propios de extensión de UML: estereotipos, restricciones, y valores etiquetados.
Ejemplo para aspecto de distribución

Monografias.com
Conclusiones
Contribuciones principales de:
AORE
Arquitectura OA
Diseño OA

Monografias.com
AORE
= Trato para los req. funcionales y no.
Reconocer que los req. se entrecruzan e influyen entre sí.
Fundamental contar con sólidos mecanismos de composición

Monografias.com
Arquitectura OA
Pequeñísimas aproximaciones y Herramientas.
El área más tímida de desarrollo hoy día.
Mostró útil y viable un lenguaje de arquitectura OA.
Creciente consenso en la comunidad para separar las ?vistas.

Partes: 1, 2, 3
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter