Spelling suggestions: "subject:"programación orientador a aspectos"" "subject:"programacióon orientador a aspectos""
1 |
Safe and practical decoupling of aspects with join point interfacesInostroza Aguilera, Milton Galo Patricio January 2013 (has links)
Magíster en Ciencias, Mención Computación / Aspect-Oriented Programming (AOP) is an advanced technique for modularizing crosscutting concerns such as profiling, security, monitoring, among others. To do this, AOP introduces a new functional unit called aspect. In current aspect-oriented systems, aspects references to the base code. Those references are fragile and give up important software engineering properties such as modular reasoning and independent evolution of aspects and base code.
In this thesis, we introduce a novel abstraction called Join Point Interfaces that, by design, supports modular reasoning and independent evolution by decoupling aspects from base code and by providing a modular type-checking algorithm. Join point interfaces can be used both with implicit announcement through pointcuts, and with explicit announcement by using closure join points. Join point interfaces further offer polymorphic dispatch on join points, with an advice-dispatch semantics akin to multi-methods. In this work, we show how our proposal solves a large number of problems observed in previous, related approaches.
We have implemented join point interfaces as an open-source extension to AspectJ. An initial study on existing aspect-oriented programs supports our initial design in general, but also highlights some limitations which we then address by introducing parametric polymor- phism and a more permissive quantification mechanism. As a result, join point interfaces are a safe and practical way of decoupling aspects.
|
2 |
Effective aspects: a typed monadic model to control and reason about aspect interferenceFigueroa Palet, Ismael José January 2014 (has links)
La Programación Orientada a Aspectos (AOP) apunta a mejorar la modularidad y reusabilidad en sistemas de software al ofrecer un mecanismo de abstracción para manejar crosscutting concerns. Sin embargo, en la mayoría de los lenguajes orientados a aspectos; los aspectos tienen poder casi sin restricciones, lo que eventualmente entra en conflicto con las metas anteriores. En este trabajo presentamos EffectiveAspects: un nuevo enfoque para incorporar el modelo AOP de pointcut/advice en un lenguaje funcional estáticamente tipeado como Haskell.
Como primera contribución, definimos una incorporación completa del modelo de pointcut/advice al lenguaje, usando mónadas. La coherencia de tipos se garantiza explotando el sistema de tipos subyacente, en particular phantom types y una nueva type class que implemente un algoritmo de anti-unificación. Los aspectos son de primera clase, pueden ser desplegados dinámicamente, y el lenguaje de pointcuts es extensible; por lo tanto combina la flexibilidad de lenguajes de aspectos dinámicamente tipeados con las garantías de un sistema de tipos estático. Las mónadas nos permiten razonar directamente sobre los efectos tanto en los aspectos como en los programas base mediante técnicas monádicas tradicionales. Con esto, extendemos la noción de Open Modules propuesta por Aldrich con efectos y con pointcuts protegidos, que son interfaces que restringen la aplicación externa de advice. Estas restricciones son enforzadas estáticamente usando el sistema de tipos. También, adaptamos las técnicas de EffectiveAdvice para razonar y enforzar propiedades del flujo de control; así como también adaptamos su enfoque basado en parametricidad para controlar la interferencia de efectos. Luego de mostrar que este último enfoque no es suficiente en presencia de múltiples aspectos, proponemos un nuevo enfoque basado en monad views, una nueva técnica para manejar mónadas, desarrollada por Schrijvers y Olivera.
Nuestra segunda contribución se basa en un poderoso modelo para razonar sobre la composición de componentes basados en mixins que incorporan efectos computacionales. Este modelo se basa en razonamiento ecuacional, parametricidad y leyes algebráicas de las mónadas. Nuestra contribución es mostrar cómo razonar sobre interferencia en la presencia de cuantificación sin restricción, a través de pointcuts. Mostramos que el razonamiento global puede ser composicional, lo que es clave para la escalabilidad de nuestro enfoque en el contexto de grandes sistemas que evolucionan.
Demostramos un teorema general de equivalencia que se basa en algunas condiciones que pueden ser establecidas, reutilizadas y adaptadas por separado a medida que el sistema evoluciona. El teorema está definido en términos de un modelo abstracto de AOP monádico.
Este trabajo desarrolla técnicas de razonamiento de efectos, basadas en tipos, para el modelo pointcut/advice, en un modelo que es expresivo y extensible; y que permite el desarrollo de aplicaciones orientadas a aspecto robustas y la experimentación con nuevas semánticas de AOP.
|
3 |
Visual Vertical profiling: Evaluar la performance y optimizar capas arquitectónicasSanfurgo Bauer, Cristóbal Felipe January 2015 (has links)
Magíster en Tecnologías de la Información / Un problema recurrente en un sistema es la degradación del rendimiento a través del tiempo, las variaciones suelen ser en un principio casi imperceptibles hasta que llega un punto de inflexión donde el aumento de los tiempos de respuesta se hace cada vez mayor. En este punto la identificación y corrección de las desviaciones en el comportamiento esperado del sistema, se vuelve crítico ya que dado el comportamiento exponencial en el aumento de los tiempos de respuesta, nos pone contra el tiempo para evitar el colapso del sistema.
Lo anterior pone en riesgo la continuidad operacional de la organización, la posible disrupción del servicio puede traer consecuencias económicas para la compañía y nuestros clientes, dada esta situación se hace crítico corregir las desviaciones de manera oportuna, rápida y a un bajo costo, sin embargo, no contamos con una forma de identificar que piezas de software son las responsables de los problemas de performance detectados.
Se propone el concepto de Vertical Profiling, la cual es una técnica y metodología que fue definida en la Universidad de Lugano, la cual utilizaremos para generar una representación del comportamiento de una aplicación basado en un set de métricas, donde cada métrica se representa como una serie de tiempo, esto nos permite entender el comportamiento a través del tiempo en cada capa del sistema, independiente de su nivel de abstracción y/o tipo de componente. Esto implica 2 etapas, la primera que consiste en un proceso de recolección de datos a través de todas las capas que componen el software y la segunda etapa que consiste en poder hacer un análisis que considere la variación en el tiempo del comportamiento del sistema. Para poder realizar el análisis del comportamiento, se propone una visualización gráfica, multidimensional, de fácil lectura y oportuna, con el fin de poder identificar los cuellos de botella.
Para este estudio en particular, se utilizará la orientación a aspectos para la captura de datos, y el análisis se realizará utilizando Moose, la cual es una plataforma de análisis de datos, en este caso lo emplearemos para el análisis de Software, y para la visualización utilizaremos Mondrian que nos permite crear el meta-modelo y así realizar un análisis visual del rendimiento del aplicativo. Con la implementación de nuestro Vertical Profiling, se redujeron considerable los tiempos de respuesta de nuestra aplicación de forma rápida, algo que con un profiler tradicional no fue posible.
|
4 |
Textram, un lenguaje de especificación de dominio textual, para el desarrollo y manejo de modelos RAMOliva Rodríguez, Marel Josué January 2015 (has links)
Magíster en Tecnologías de la Información / La programación orientada a aspectos (AOP) sirve para separar las preocupaciones transversales desde la perspectiva de implementación de un sistema de software. El modelamiento orientado a aspectos (AOM) ofrece una alternativa para representar las preocupaciones transversales en niveles más altos de abstracción, en etapas anteriores a la implementación del software. "Reusable Aspect Models" (RAM) es un enfoque de AOM, que permite el diseño detallado de un sistema de software a través de módulos llamados "aspect models". La representación gráfica de RAM está inspirada por UML; los aspectos son definidos estáticamente a través de diagramas de clases y dinámicamente por medio de diagramas de estado y de secuencia. La consistencia entre modelos está asegurada por RAM, gracias a la
jerarquía de modelos y estructuras de dependencias. TouchRAM es una herramienta gráfica para el modelado de aspectos RAM. Actualmente TouchRAM continúa en desarrollo y es la única herramienta disponible para la creación de RAMs. TouchRAM no está disponible para el público general, dificultando su adopción en otros proyectos de software.
El objetivo de la presente tesis es presentar TextRAM, un modelador textual para la definición de modelos RAM. TextRAM se presenta como una alternativa a TouchRAM. El código fuente de TextRAM está disponible para su descarga y su implementación pretende estimular el desarrollo e investigación de RAM. Los modelos resultantes de TextRAM, podrán ser utilizados por TouchRAM y viceversa. Los usuarios de RAM, podrán elegir entre un modelamiento gráfico con TouhRAM o de un modelamiento textual con TextRAM.
Los objetivos de TextRAM son: (1) definición de una abstracción adecuada para la sintaxis concreta textual, (2) implementar una extensión de Eclipse que permita la edición de modelos con la sintaxis concreta de TextRAM, (3) tranformación de modelos desde TextRAM a TouchRAM y viceversa, (4) Aplicar las validaciones semánticas alineadas a las reglas de TouchRAM, (5) demostrar la validez de TextRAM, por medio de un caso de estudio llamado Slot Machines.
|
5 |
Desarrollo de una herramienta gráfica de exploración de robots con ROSSchkolnik Müller, Demian Aley January 2015 (has links)
Ingeniero Civil en Computación / ROS, un middleware para robots, ofrece gran variedad de herramientas para su utilización. Sin embargo, carece de una importante herramienta: Algo que permita visualizar de forma dinámica sus componentes, y poder así entender sistemas complejos de mejor forma.
Esta memoria consistió en desarrollar una herramienta, que es capaz de visualizar, mediante un grafo, un sistema completo creado en ROS, pudiendo ver cuáles son sus distintos componentes y cómo interactúan. Además, la herramienta incluye la opción de visualizar tres tipos de mensajes comunes presentes en ROS. El trabajo se realizó en el lenguaje de programación Smalltalk, y usando el ambiente de desarrollo Pharo. Para las visualizaciones se utilizó el motor de visualizaciones Roassal, basado en Pharo. El trabajo se dividió en cuatro grandes etapas.
La primera etapa consistió en un trabajo de investigación, haciendo una revisión de las herramienta a usar en el desarrollo, junto a un análisis de los mensajes comunes de ROS y como se representaban. Esto sería usado en la segunda etapa.
La segunda etapa consistió en el desarrollo de una API, que permitiera comunicación entre Pharo y ROS. Para ello se hizo uso de las herramientas de consola presentes en ROS. Junto a la API, se desarrollaron una serie de tests, a modo de robustecer la API frente a posibles cambios en ROS.
La tercera etapa consistió en la creación del grafo general de ROS. Este grafo nos muestra el sistema completo creado en ROS, indicándonos también de qué forma interactúan los componentes entre ellos. En esta etapa, la comunicación con ROS se hace exclusivamente a través de la API implementada en la segunda etapa.
La cuarta y última etapa consistió en la creación de las visualizaciones para tres mensajes comunes de ROS. Estas visualizaciones son dinámicas, es decir, cambian en tiempo real cuando los mensajes cambian.
El presente trabajo presenta primero el estudio previo, explicando las herramientas, lenguajes y funcionalidades que se usarán en el desarrollo. Esta sección también incluye información de herramientas similares existentes, y explica las falencias de éstas y la justificación de la creación de una nueva herramienta. La segunda parte de este trabajo contiene el desarrollo de la herramienta, comenzando por la API, para luego seguir con el grafo general y las visualizaciones.
A modo de conclusión, la herramienta creada presenta una manera eficaz y usable de explorar robots creados con ROS, y fue creada de manera modular y extensible, generando algunas visualizaciones de ejemplo. Puede servir como base para un trabajo futuro, que genere más visualizaciones así como también incluya un sistema de inserción de mensajes.
|
6 |
El lenguaje de aspectos amistoso CasperCampusano Araya, Miguel Enrique January 2013 (has links)
Ingeniero Civil en Computación / Mientras los programas se vuelven más complejos, nacen nuevos problemas. Uno de ellos es la poca modularidad que se tiene con las llamadas funcionalidades transversales. Estas funcionalidades están dispersas por toda la aplicación y no pueden separarse mediante el paradigma de la programación orientada a objetos. Para solucionar este problema nace el paradigma de la programación orientada a aspectos.
En la programación orientada a aspectos se modularizan las funcionalidades trans- versales en una entidad llamada aspecto. El aspecto se ejecuta donde corresponde gracias a que, conceptualmente, el programa se está monitoreando por el aspecto en toda su ejecución, decidiendo cuando se debe ejecutar una acción provista por el aspecto. La- mentablemente, el monitoreo de la aplicación conlleva a un sobrecosto que, muchas veces, los desarrolladores no están dispuestos a pagar.
En este trabajo se presenta Casper, un lenguaje orientado a aspectos construido sobre Pharo Smalltalk. Las características más importantes buscadas por Casper son la simplicidad de uso, la explicitud de lo que sucede con los aspectos y bajar el sobrecosto de la ejecución de los programas que utilicen Casper.
Casper basa sus funcionalidades en PHANtom. PHANtom es un lenguaje de aspectos construidos sobre Pharo Smalltalk. Ambos lenguajes tienen sintaxis similares, pero las implementaciones son muy diferentes. Casper busca mejorar los sobrecostos generados al usar PHANtom. Para ello Casper propone compilar las funcionalidades dadas por los aspectos junto con los métodos originales. Gracias a la compilación, Casper expone las funcionalidades al desarrollador, en cambio, PHANtom esconde las funcionalidades y nunca muestra de forma explícita donde se ejecuta una funcionalidad transversal.
Se comprobó el uso de Casper refactorizando SPY. SPY es un framework para el aná- lisis dinámico de programas. SPY instrumentaliza los métodos que se quieren analizar. Casper provee la instrumentalización de SPY con aspectos. Se realizaron pruebas sobre SPY versus SPY con Casper versus SPY con PHANtom. Se tomaron los tiempos sobre la preparación de la aplicación misma y lo que demora en ejecutar. Estos resultados comprueban un sobrecosto del uso de aspectos en la aplicación. Sin embargo, también demuestra que la ejecución de la refactorización de SPY con Casper es mucho menos costosa que la refactorización de SPY usando PHANtom.
|
7 |
Prisma: aspect-oriented software architecturesPérez Benedí, Jenifer 07 May 2008 (has links)
Hoy en día, la complejidad de los sistemas software y la gran relevancia que han adquirido los
requisitos no funcionales son retos que han de abordarse durante el proceso de desarrollo
software. En los últimos años, estas propiedades han provocado un gran incremento en el
tiempo y el personal necesario para llevar a cabo los procesos de desarrollo y mantenimiento
del software. Por ello, existe un gran interés en mejorar dichos procesos. Esta tesis presenta un
nuevo enfoque de desarrollo para sistemas software complejos. Dicho enfoque, llamado
PRISMA, da soporte a estos nuevos retos y permite satisfacer la elevada competitividad del
mercado.
El enfoque PRISMA se ha materializado en un marco de trabajo formado por un modelo,
un lenguaje, una metodología y un prototipo de herramienta CASE (Computer-Aided Software
Engineering). El modelo de PRISMA combina dos aproximaciones para definir arquitecturas
software: el Desarrollo de Software Basado en Componentes (DSBC) y el Desarrollo de
Software Orientado a Aspectos (DSOA). Las principales aportaciones del modelo es la manera
en la que integra ambas aproximaciones para obtener sus ventajas y su lenguaje formal.
PRISMA tiene en cuenta los requisitos no funcionales desde las primeras etapas del ciclo de
vida software y mejora su reutilización y el mantenimiento. Todo ello gracias a la
descomposición que realiza de los sistemas software utilizando dos conceptos diferentes:
aspectos y elementos arquitectónicos (componentes y conectores).
PRISMA proporciona un Lenguaje de Descripción de Arquitecturas Orientado a Aspectos
(LDAOA) formal para la especificación de arquitecturas software orientadas a aspectos. El
LDAOA de PRISMA es independiente de cualquier tecnología y está basado en lenguajes
formales para evitar la ambigüedad y poder aplicar técnicas de generación automática de
código.
La metodología de PRISMA apuesta por el desarrollo de software siguiendo el Paradigma
de la Prototipación Automática mediante la aplicación del e / Pérez Benedí, J. (2006). Prisma: aspect-oriented software architectures [Tesis doctoral]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/1928
|
Page generated in 0.1195 seconds