270 likes | 878 Views
Introducción a la programación orientada a aspectos. Universidad del Azuay Maestría en Telemática. Sesión 3. Desventajas:. Unidades de descomposición no tratan aspectos como: No se considera gestión de memoria Coordinación Distribución Ejecución en tiempo real. Desventajas:.
E N D
Introducción a la programación orientada a aspectos. Universidad del Azuay Maestría en Telemática Sesión 3
Desventajas: • Unidades de descomposición no tratan aspectos como: • No se considera gestión de memoria • Coordinación • Distribución • Ejecución en tiempo real.
Desventajas: • Sincronización • Distribución • Manejo de errores • Optimización de memoria • Gestión de la seguridad
Consecuencia: • Nos encontramos con problemas deprogramación en los cuales ni las técnicasfuncionales, ni las orientadas a objeto son suficientes para capturar todas lasdecisionesde diseño que el programa debe implementar.
Consecuencias: • Las técnicas tradicionales no soportan bien la separación decompetencias para aspectos distintos de la funcionalidad básica de un sistema, y esta situación claramente tiene un impacto negativo en la calidad del software.
P.O.A. • La programación orientada a aspectos (POA) es una nueva metodología deprogramación que aspira a soportar la separación de competencias para los aspectosantes mencionados. • Intenta separar los componentes y los aspectos unosde otros, proporcionando mecanismos que hagan posible abstraerlos y componerlos paraformar todo el sistema.
P.O.A. (2) • Lo que se persigue es implementar una aplicaciónde forma eficiente y fácil de entender. • POA es un desarrollo que sigue al paradigma de la orientación a objetos, soporta la descomposición orientada a objetos, además de la procedimental y ladescomposición funcional. • A pesar de esto, POA no se puede considerar como unaextensión de la POO, ya que puede utilizarse con los diferentes estilos deprogramación antes mencionados.
P.O.A.(3) • El estado actual de la investigación en POA es análogo al que había hace veinteaños en la programación orientada a objetos.
Historia • 1991. Equipo Demeter. Programación adaptativa. C ristina Lopes propuso sincronización e invocación remota como nuevos bloques. • 1995. Equipo Demeter introduce el término. • P.O.A. presentado por GregorKiczales y su grupo & Cristina Lopes.
Objetivos: • Separar conceptos: • cada decisión se tome en un lugar concreto. • Minimizar las dependencias entreellos: • pérdida delacoplamiento entre los distintos elementos.
Ventajas de la P.O.A. • Un código menos enmarañado, más natural y más reducido. • Una mayor facilidad para razonar sobre las materias, ya que están separadasy tienen una dependencia mínima. • Más facilidad para depurar y hacer modificaciones en el código. • Se consigue que un conjunto grande de modificaciones en la definición deuna materia tenga un impacto mínimo en las otras. • Se tiene un código más reutilizable y que se puede acoplar y desacoplar cuandosea necesario.
¿Qué es un aspecto? • Un aspecto es una unidad modular que sedisemina por la estructura de otras unidades funcionales. Los aspectos existen tantoen la etapa de diseño como en la de implementación. Un aspecto de diseño es unaunidad modular del diseño que se entremezcla en la estructura de otras partes deldiseño. Un aspecto de programa o de código es una unidad modular del programa queaparece en otras unidades modulares del programa (G. Kiczales).
¿Qué es un aspecto? • De manera más informal podemos decir que los aspectos son la unidad básica dela POA, y pueden definirse como las partes de una aplicación que describen lascuestiones claves relacionadas con la semántica esencial o el rendimiento. • Tambiénpueden verse como los elementos que se diseminan por todo el código y que sondifíciles de describir localmente con respecto a otros componentes.
Diferencia entre componente y aspecto • Se puede diferenciar entre un componente y un aspecto viendo al primero comoaquella propiedad que se puede encapsular claramente en un procedimiento, mientrasque un aspecto no se puede encapsular en un procedimiento con los lenguajestradicionales.
Justificación • Las técnicas orientadas a objetos y las técnicas procedimentales de programación no son suficientes para capturar con claridad importantes desiciones de diseño que debe implementar el programa.
Justificación • Las decisiones que difícilmente son capturadas por las OOP y POP se denominan aspectos. • La técnica de P.O.A. Permite especificar claramente aspectos tales como asilamiento, composición y reutilización del código.
Fundamentos • El proceso del diseño del software: • Dividir un sistema en partes pequeñas. • Los lenguajes permiten definir abstracciones de las subunidades del sistema. • La composición de abstracción permite construir el sistema en su totalidad. • La abstracción y composición debe soportar con claridad las unidades de diseño del sistema.
Fundamentos • Lenguajes procedimentales generales (GP). • Descomposición Funcional: Dividen el sistema en unidades de comportamiento o función. • Muchas de estas funciones pueden no ser del todo funcionales.
Programación Orientada a Aspectos • Se evalúan tres implementaciones: • Fácil de entender pero ineficiente • Eficiente pero difícil de entender • POA: fácil y eficiente. • Procesamiento de imágenes en blanco y negro.
Procesamiento de imágenes en blanco y negro. • Imágenes pasan por filtros para producir una salida. • Fácil de desarrollar y mantener • Uso eficiente de memoria • Formal: para ampliar libre de errores en el programa. • Eficiente: optimizar almacenamiento de memoria y direccionamiento.
Bibliografía • Antonia Mª Reina Quintero, VisiónGeneral de la ProgramaciónOrientada a Aspectos. Departamento de Lenguajes y Sistemas Informáticos. Facultad de Informática y EstadísticaUniversidad de Sevilla. (2000).