- Aspect-oriented programming (AOP) is a new language paradigm proposed for cleanly modularizing the crosscutting structure of concerns such as exception handling, synchronization, performance optimizations, and r esource sharing, that are usually difficult to express cleanly in source code using existing programming techniques. AOP can control such code tangling and make the underlying concerns more apparent, making programs easier to develop and maintain. In aspect-oriented programs, the basic program unit is an aspect. An aspect with its encapsulation of state with associated advice, introductions, and methods (operations) is a significantly different abstraction in comparison to the procedure units within procedural programs or class units within object-oriented programs. The inclusion of join points in an aspect further complicates the static and dynamic relations between aspects and classes.
- Program analysis and testing research must adapt to the emergence of new languages and design paradigms in order to analyze and verify the correctness of systems written in these new languages by presenting some new analysis and testing strategies that are relevant to these new languages and paradigms. As research in aspect-oriented programming is reaching maturity with a number of active research products, researchers in program analysis and testing need to focus on this new paradigm.
- We believe that aspect-oriented programming languages present unique opportunities and problems for program analysis and testing scheme. For example, to analyze and test aspect-oriented programs, specific aspect-oriented features such as join points, pointcuts, a pieces of advice, and aspects, that are different from existing procedural or object-oriented programming languages, must be handled appropriately. Moreover, although these specific features provide great strengths for modeling crosscutting concerns in software systems, they also introduce difficulties in program analysis and testing.
- Afanti is a project that aims at developing techniques and tools to support analysis and testing of aspect-oriented programs.
- Tao Xie, Jianjun Zhao, Darko Marinov and David Notkin. Automated Test Generation for AspectJ Programs. AOSD 2005 Workshop on Testing Aspect-Oriented Programs, Chicago, USA, March 2005.
- Tao Xie, Jianjun Zhao, Darko Marinov and David Notkin. Detecting Redundant Unit Tests for AspectJ Programs. Technical Report UW-CSE-04-10-03, Department of Computer Science and Engineering, University of Washington (Seattle, WA), October 2004.
- A. Tokumon and Jianjun Zhao. Points-to Analysis for AspectJ Programs. Proc. 21th Conference of Japan Society for Software Science and Technology (JSSST 2004), Tokyo, Japan, September 15-17, 2004. (in Japanese)
- Jianjun Zhao. Towards Regression Test Selection for AspectJ Programs. Technical-Report SE-145-12, Information Processing Society of Japan (IPSJ), August 2004. (revised 2006)
- Jianjun Zhao. Data-Flow-Based Unit Testing of Aspect-Oriented Programs. Proceedings of the 27th Annual IEEE International Computer Software and Applications Conference (COMPSAC 2003), Dallas, Texas, USA, November 3-6, 2003.
- Jianjun Zhao. Towards Formal Verification of AspectJ Programs. Proceedings of 14th Conference of Japan Society for Software Science and Technology (JSSST 2003), Aichi, Japan, September 2003.
- Jianjun Zhao and Martin Rinard. Pipa: A Behavioral Interface Specification Language for AspectJ. Proceedings of Fundamental Approaches to Software Engineering (FASE 2003), LNCS 2621, pp.150-165, Springer-Verlag, April 2003.
- Jianjun Zhao and Martin Rinard. System Dependence Graph Construction for Aspect-Oriented Programs. MIT-LCS-TR-891, Laboratory for Computer Science, MIT, March 2003.
- Jianjun Zhao. Tool Support for Unit Testing of Aspect-Oriented Software. OOPSLA 2002 Workshop on Tools for Aspect-Oriented Software Development, Seattle, WA, USA, November 2002.
- Jianjun Zhao. Slicing Aspect-Oriented Software. Proceedings of the 10th IEEE International Workshop on Program Comprehension, pp.251-260, Paris, France, June 2002.
- Jianjun Zhao. Change Impact Analysis for Aspect-Oriented Software Evolution. Proceedings of the 5th International Workshop on Principles of Software Evolution, pp.108-112, ACM Press, Orlando, Florida, USA, May 2002.
- Jianjun Zhao. Testing Criteria for Aspect-Oriented Software. Technical-Report SE-135-6, Information Processing Society of Japan (IPSJ), November 2001.
- Related Links