XE ( eXtreme Editor )-Tool Support for Evolution in Aspect-Oriented Programming

In spite of themodularizationbene! ts supportedby theAspect-Orientedprogrammingparadigm, di"erent usability issues have hindered its adoption. #e decoupling between aspect de! nitions and base code, and the compile-time weaving mechanism adopted by di"erent AOP languages, require developers to manage the consistency between base code and aspect code themselves. #ese mechanisms create opportunities for errors related to aspect weaving invisibility and non-local control characteristics of AOP languages. In short, AOP developers lack adequate support for: 1) visualizing and identifying the exact points in the code where aspects are woven; 2) preventing aspect-base code inconsistencies, and 3) evolving aspect-oriented code in a coherent way. #is paper describes XE (Extreme Editor), an IDE that supports developers in managing these issues in the functional aspect-oriented programming domain. We validate our approach through a case study showing how XE reduces the cognitive e"ort of developers in evolving AOP programs. XE (eXtreme Editor) Tool Support for Evolution in Aspect-Oriented Programming Wiwat Ruengmee, Roberto Silveira Silva Filho, Sushil Krishna Bajracharya, David F. Redmiles, Cristina Videira Lopes {wruengme, rsilva! , sbajrach, redmiles, lopes}@ics.uci. edu Department of Informatics Donald Bren School of Information and Computer Sciences, University of California Irvine, CA, 92697 USA ISR Technical Report # UCI-ISR-08-1 June 2008 Abstract. In spite of the modularization bene! ts supported by the Aspect-Oriented programming paradigm, different usability issues have hindered its adoption. "e decoupling between aspect de! nitions and base code, and the compile-time weaving mechanism adopted by di#erent AOP languages, require developers to manage the consistency between base code and aspect code themselves. "ese mechanisms create opportunities for errors related to aspect weaving invisibility and non-local control characteristics of AOP languages. In short, AOP developers lack adequate support for: 1) visualizing and identifying the exact points in the code where aspects are woven; 2) preventing aspect-base code inconsistencies, and 3) evolving aspect-oriented code in a coherent way. "is paper describes XE (Extreme Editor), an IDE that supports developers in managing these issues in the functional aspect-oriented programming domain. We validate our approach through a case study showing how XE reduces the cognitive e#ort of developers in evolving AOP programs. In spite of the modularization bene! ts supported by the Aspect-Oriented programming paradigm, different usability issues have hindered its adoption. "e decoupling between aspect de! nitions and base code, and the compile-time weaving mechanism adopted by di#erent AOP languages, require developers to manage the consistency between base code and aspect code themselves. "ese mechanisms create opportunities for errors related to aspect weaving invisibility and non-local control characteristics of AOP languages. In short, AOP developers lack adequate support for: 1) visualizing and identifying the exact points in the code where aspects are woven; 2) preventing aspect-base code inconsistencies, and 3) evolving aspect-oriented code in a coherent way. "is paper describes XE (Extreme Editor), an IDE that supports developers in managing these issues in the functional aspect-oriented programming domain. We validate our approach through a case study showing how XE reduces the cognitive e#ort of developers in evolving AOP programs.