Plataforma de Desarrollo Software con Tejido Estático y Dinámico de Aspectos
Author:
Director:
Centro/Departamento/Otros:
Subject:
Separation of concerns
Desarrollo de software orientado a aspectos
Tejido dinámico
Tejido estático
Independencia del lenguaje
Dinamismo
Meta-object protocol
Optimizaciones de rendimiento de ejecución
Instrumentación de código binario
Medición del rendimiento
Publication date:
Descripción física:
Abstract:
En el desarrollo de software se busca la división de las aplicaciones en módulos independientes entre sí, mejorando su reutilización, comprensibilidad, extensibilidad y mantenibilidad. Aunque los paradigmas de programación existentes utilizan distintas abstracciones para realizar esta división en módulos, en ocasiones estos mecanismos no son suficientes para modularizar todas las funcionalidades. El resultado es que parte del código de una misma funcionalidad acaba diseminado por toda la aplicación y entremezclado con el código de otras funcionalidades. El principio de Separation of Concerns se basa en separar una aplicación en módulos distintos, de forma que cada uno de ellos abstraiga un único asunto, concepto o interés (concern), evitando que dos o más concerns se ubiquen en un único módulo, o alguno de ellos esté diseminado a lo largo de varios. Puesto que los paradigmas existentes tienen limitaciones a la hora de modularizar algunos concerns, surge el paradigma orientado a aspectos. Aquel código que no pueda modularizarse con los paradigmas clásicos será implementado mediante un aspecto, y un tejedor se encargará de combinar (tejer) su código con el de los componentes de la aplicación. De esta forma, tanto los componentes como los aspectos pueden abstraer los concerns de una aplicación sin sufrir los problemas del entremezclado y dispersión de código mencionados. En función de los requisitos de un sistema, el tejido de componentes y aspectos se suele realizar o bien antes de ejecutar una aplicación (estáticamente), o bien dinámicamente en cualquier punto de ejecución del programa. Las técnicas utilizadas para realizar ambos tipos de tejido son significativamente distintas, causando diferencias importantes en el modo de codificar una aplicación en función del tejido (estático o dinámico) utilizado. En consecuencia, las plataformas orientadas a aspectos no separan el concern del dinamismo del tejedor, haciendo dependiente a la aplicación de este asunto. Adicionalmente, los pocos sistemas que permiten tanto el tejido estático como el dinámico poseen limitaciones importantes en el número de puntos de ejecución que pueden ser interceptados (tejidos), carencias en el tejido y destejido dinámico de aspectos y penalizaciones significativas en el rendimiento en tiempo de ejecución de las aplicaciones. La principal contribución de la tesis presentada es el diseño, formalización e implementación de una plataforma de aspectos que separe el concern del dinamismo de tejido. Los aspectos y componentes podrán ser tejidos tanto estática como dinámicamente sin necesidad de ser modificados, permitiendo cambiar su dinamismo con la simple modificación de un parámetro pasado al tejedor. La plataforma presentada está formalizada mediante una semántica operacional independiente del lenguaje de programación base (el lenguaje que es tejido). El sistema permite el tejido y destejido en cualquier punto de ejecución del lenguaje base, ampliando así la funcionalidad del tejido dinámico existente en los sistemas actuales. Posteriormente, se diseña el sistema conforme a esta semántica, y se implementa sobre una plataforma virtual estándar independiente del lenguaje y del sistema operativo, permitiendo además la adaptación de aplicaciones distribuidas. En la plataforma implementada se incluyen diversas optimizaciones novedosas para incrementar su rendimiento sin penalizar el consumo de memoria. Finalmente, se presenta una evaluación exhaustiva de la plataforma implementada, mostrando cómo el rendimiento de sus dos tejedores es superior a los tejedores más rápidos existentes, requiriendo menos recursos de memoria. La evaluación presentada también muestra cómo el tejedor de nuestra plataforma es el que posee la menor penalización en ambos tipos de tejido.
En el desarrollo de software se busca la división de las aplicaciones en módulos independientes entre sí, mejorando su reutilización, comprensibilidad, extensibilidad y mantenibilidad. Aunque los paradigmas de programación existentes utilizan distintas abstracciones para realizar esta división en módulos, en ocasiones estos mecanismos no son suficientes para modularizar todas las funcionalidades. El resultado es que parte del código de una misma funcionalidad acaba diseminado por toda la aplicación y entremezclado con el código de otras funcionalidades. El principio de Separation of Concerns se basa en separar una aplicación en módulos distintos, de forma que cada uno de ellos abstraiga un único asunto, concepto o interés (concern), evitando que dos o más concerns se ubiquen en un único módulo, o alguno de ellos esté diseminado a lo largo de varios. Puesto que los paradigmas existentes tienen limitaciones a la hora de modularizar algunos concerns, surge el paradigma orientado a aspectos. Aquel código que no pueda modularizarse con los paradigmas clásicos será implementado mediante un aspecto, y un tejedor se encargará de combinar (tejer) su código con el de los componentes de la aplicación. De esta forma, tanto los componentes como los aspectos pueden abstraer los concerns de una aplicación sin sufrir los problemas del entremezclado y dispersión de código mencionados. En función de los requisitos de un sistema, el tejido de componentes y aspectos se suele realizar o bien antes de ejecutar una aplicación (estáticamente), o bien dinámicamente en cualquier punto de ejecución del programa. Las técnicas utilizadas para realizar ambos tipos de tejido son significativamente distintas, causando diferencias importantes en el modo de codificar una aplicación en función del tejido (estático o dinámico) utilizado. En consecuencia, las plataformas orientadas a aspectos no separan el concern del dinamismo del tejedor, haciendo dependiente a la aplicación de este asunto. Adicionalmente, los pocos sistemas que permiten tanto el tejido estático como el dinámico poseen limitaciones importantes en el número de puntos de ejecución que pueden ser interceptados (tejidos), carencias en el tejido y destejido dinámico de aspectos y penalizaciones significativas en el rendimiento en tiempo de ejecución de las aplicaciones. La principal contribución de la tesis presentada es el diseño, formalización e implementación de una plataforma de aspectos que separe el concern del dinamismo de tejido. Los aspectos y componentes podrán ser tejidos tanto estática como dinámicamente sin necesidad de ser modificados, permitiendo cambiar su dinamismo con la simple modificación de un parámetro pasado al tejedor. La plataforma presentada está formalizada mediante una semántica operacional independiente del lenguaje de programación base (el lenguaje que es tejido). El sistema permite el tejido y destejido en cualquier punto de ejecución del lenguaje base, ampliando así la funcionalidad del tejido dinámico existente en los sistemas actuales. Posteriormente, se diseña el sistema conforme a esta semántica, y se implementa sobre una plataforma virtual estándar independiente del lenguaje y del sistema operativo, permitiendo además la adaptación de aplicaciones distribuidas. En la plataforma implementada se incluyen diversas optimizaciones novedosas para incrementar su rendimiento sin penalizar el consumo de memoria. Finalmente, se presenta una evaluación exhaustiva de la plataforma implementada, mostrando cómo el rendimiento de sus dos tejedores es superior a los tejedores más rápidos existentes, requiriendo menos recursos de memoria. La evaluación presentada también muestra cómo el tejedor de nuestra plataforma es el que posee la menor penalización en ambos tipos de tejido.
Local Notes:
DT(SE) 2015-120
Collections
- Tesis [7486]
- Tesis doctorales a texto completo [2005]