BALALU: Anticipar los cambios en un Software OA

BALALU: Anticipating changes of a Software OA - UNPA. Analysis and evaluation of change operations and their consequences.

Cecilia Andrea Fuentes Zamorano, Sandra Isabel Casas

Código

ICT-UNPA-74-2013

Resumen


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.

Palabras clave


Programación Orientada a Aspectos; Evolución; Mantenimiento; AspectJ


Abstract


The dependence and coupling existing between aspects and classes generate a high impact when the domain changes. This situation is typical of applications that use aspects implemented in AspectJ style languages. In these cases the developer faces new dilemmas since the behavior introduced by the aspects is executed or stopped without having modified those aspects. The best way to solve a problem is to be anticipate, it becomes a principle and strategy that we coined to find a possible solution to the problem posed. In this way, this paper proposes an empirical solution based on the tool BaLaLu, whose purpose is to anticipate the consequences that a change can have in an application that uses aspects.


Keywords


Crosscutting concerns CCC; Aspect-oriented Programming; AspectJ; Pointcuts; Join-point; Advices.


Área


Ingeniería y Tecnología

Resolución


1053/13-R-UNPA

Fecha de Aprobación


2013-09-24

Texto completo:

PDF

Referencias


AJDT: AspectJ Development Tools, http://www.eclipse.org/ajdt/

BOUTERAA I. and N. Bounour, “Towards The Use of Program Slicing In the Change Impact Analysis of Aspect Oriented Programs”, ACIT'2011 Proceedings International Arab Conference on Information Technology – Arabia Saudita, 2011.

CAVALLERO L. & M. Monga, “Unweaving the Impact of Aspect Changes in AspectJ”. FOAL 09 – USA.

COELHO R., Rashid A., Garcia A., Ferrari F., Cacho N., Kulesza U., von Staa A., and Lucena C. Assessing the impact of aspects on exception ows: An exploratory study. In European Conference on Object-Oriented Programming (ECOOP), pages 207-234, 2008.

COLEMAN, D.M. Ash, D., Lowther, B., And Oman, P. Using metrics to evaluate software system maintainability. IEEE Computer 27, 8 (1994), 44–49. https://doi.org/10.1109/2.303623

CONCURRENT VERSIONS SYSTEM (CVS), http://www.nongnu.org/cvs/

DELAMARE R., F. Muñoz, B. Baudry and Y. Le Traon “Vidock: a Tool for Impact Analysis of Asect Weaving on Test Cases”. ICTSS'10 Proceedings of the 22nd IFIP WG 6.1 - Springer-Verlag Berlin, Heidelberg ©2010. Pp 250-265. https://doi.org/10.1007/978-3-642-16573-3_18

ERLIKH, L. Leveraging legacy system dollars for e-business. (IEEE) IT Pro (May-June 2000), 17–23.

FIGUEIREDO E., Cacho N., Sant Anna C., Monteiro M., Kulesza U., Garcia A., Soares S., Ferrari F., Khan S., Castor Filho F., and Dantas F. Evolving software product lines with aspects: an empirical study on design stability. In ICSE 08: Proceedings of the 30th international conference on Software engineering, pages 261-270, New York, NY, USA, 2008. ACM. https://doi.org/10.1145/1368088.1368124

KELLENS A., Mens K., Brichau J., and Gybels K. Managing the evolution of aspect-oriented software with model-based pointcuts. In European Conference on Object-Oriented Programming (ECOOP), number 4067 in LNCS, pages 501-525, 2006. https://doi.org/10.1007/11785477_28

KICZALES, G.: Tutorial on Aspect-Oriented Programming with AspectJ, FSE (2000).

KOPPEN C. and M. Stoerzer, “Pcdiff: Attacking the Fragile Pointcut Problem”, European Interactive Workshop on Aspects in Software, Berlin, Germany, 2004.

KOPPEN C. and Stoerzer M. Pcdiff: Attacking the fragile pointcut problem. In European Interactive Workshop on Aspects in Software (EIWAS), 2004.

LI W. and Henry S. An Empirical Study of Maintenance Activities in Two Objectoriented Systems, Journal of Software Maintenance, Research and Practice, Volume 7, No. 2 March-April 1995, pp.131-147. https://doi.org/10.1002/smr.4360070206

LIU Ch., S. Chen and W. Jhu, “Change Impact Analisys for Objetc-oriented Programs Evolved to aspect-Oriented programs”, SAC 2011. Taiwan.

OPEN SOURCE SOFTWARE ENGINEERING TOOLS, SVN, http://subversion.tigris.org

PIVETA E., Zancanela L.: Aspect Weaving Strategies. Journal of Universal Computer Sciencie. Vol.9. Num.8 (2.003).

ROBBES R.: Of Change and Software. Ph.D. Thesis, University of Lugano, 210 pages (2008).

ROBBES, R., Lanza, M.: A Change-Based Approach to Software Evolution. In: ENTCS, volume 166, issue 1, pp. 93-109 (2007). https://doi.org/10.1016/j.entcs.2006.06.015

ROBBES, R., Lanza, M.: An Approach to Software Evolution Based on Semantic Change. In: Proceedings of Fase 2007, pp. 27, 41 (2007). https://doi.org/10.1007/978-3-540-71289-3_4

ROBBES, R., Lanza, M.: Change-Based Software Evolution. EVOL 2006, pp. 159- 164 (2006)

ROBBES, R., Lanza, M.: Towards Change-Aware Development Tools. Technical Report at USI, 25 pages (2007).

SCHNEIDEWIND N. The State of Software Maintenance, IEEE Transactions on Software Engineering, SE-13, No. 3, March 1987, pp.303-310. https://doi.org/10.1109/TSE.1987.233161

SOARES S., Borba P., and Laureano E. Distribution and persistence as aspects. Softw., Pract. Exper., 36(7):711-759, 2006. https://doi.org/10.1002/spe.715

THE ASPECTJ PROGRAMMING GUIDE, http://eclipse.org/aspectj.

YE L., De Volder, K.: Tool support for understanding and diagnosing pointcut expressions. In: International Conference Aspect-Oriented Software Development (2008). https://doi.org/10.1145/1353482.1353500

ZHANG S. and J. Zhao, “Change Impact Analysis for Aspect-Oriented Programs”. Technical Report SJTU-CSE-TR-07-01, Center for Software Engineering, Shanghai Jiao Tong University, 2007.




DOI: http://dx.doi.org/10.22305/ict-unpa.v5i3.83

Enlaces refback

  • No hay ningún enlace refback.




_______________________________________________________________________________

Revista de Informes Científicos y Técnicos de la Universidad Nacional de la Patagonia Austral. © 2009 Todos los Derechos Reservados.
Licencia Creative CommonsEsta obra está bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivar 4.0 Internacional.