Informes Científicos y Técnicos (Universidad Nacional de la Patagonia Austral) (Jun 2014)
BALALU: Anticipar los cambios en un Software OA
Abstract
El mantenimiento y evolución del software muchas veces se vuelve una tarea engorrosa, debido a que el software no se encuentra adecuadamente documentado, o bien las personas destinadas a realizar los cambios no son los propios desarrolladores del software, haciendo que la comprensión del código fuente sea un trabajo complejo. Esto se vuelve más difícil cuando se utilizan aspectos debido a que el código fuente base implícitamente invoca al código de los aspectos. La invocación implícita es especificada por los constructores específicos aspectuales (pointcuts) agregando un nivel extra de indirección, que hace más difícil comprender el comportamiento total del software. Diversos problemas como pointcuts frágiles e interacciones entre aspectos se producen fácil e inadvertidamente en la evolución del software orientado a aspectos, ya sea a partir de simples cambios en el código o bien por la aplicación de refactorings. Los desarrolladores deben analizar manualmente el código fuente (de aspectos y clases) para identificar estas ocurrencias, agregar más pruebas, en definitiva, se aumentan los costos y esfuerzos durante la evolución y mantenimiento. Consecuentemente, existe la necesidad de plantear estrategias, técnicas y herramientas que permitan a los desarrolladores de software anticipar, analizar y evaluar los efectos e impactos en el software con aspectos, producto de la evolución del software. En este trabajo planteamos como las características de la Programación Orientada a Aspectos (POA) mencionadas, inciden negativamente en la evolución y mantenimiento de aplicaciones OA, y proponemos la herramienta BaLaLu cuya finalidad es anticipar las consecuencias que un cambio podrá tener en una aplicación que usa aspectos. La estructura de este informe se encuentra conformada en base a los siguientes elementos que se detallan: la Sección 2 corresponde a una breve introducción a la POA y al Lenguaje Orientado a Aspectos AspectJ. En la Sección 3 se hace referencia a la evolución y al mantenimiento de software OA. Luego en el apartado 4 se detalla un análisis de las operaciones de cambio. El modelo de anticipación se presenta y describe en la Sección 5, para luego mostrar la herramienta desarrollada y los ejemplos de los casos de estudio analizados en la Sección 6. En la Sección 7 se presentan los trabajos relacionados, finalizando en la Sección 8 con las conclusiones pertinentes.
Keywords