A classification of invasive patterns in AOP

by Freddy Munoz, Benoit Baudry, Olivier Barais
Abstract:
Aspect-Oriented Programming (AOP) improves modularity by encapsulating crosscutting concerns into aspects. Some mechanisms to compose aspects allow invasiveness as a mean to integrate concerns. Invasiveness means that AOP languages have unrestricted access to program properties. Such kind of languages are interesting because they allow performing complex operations and better introduce functionalities. In this report we present a classification of invasive patterns in AOP. This classification characterizes the aspects invasive behavior and allows developers to abstract about the aspect incidence over the program they crosscut.
Reference:
A classification of invasive patterns in AOP (Freddy Munoz, Benoit Baudry, Olivier Barais), Technical report, IRISA Research Center, 2008.
Bibtex Entry:
@techreport{munoz2008a,
	Abstract = {Aspect-Oriented Programming (AOP) improves modularity by encapsulating
	crosscutting concerns into aspects. Some mechanisms to compose aspects
	allow invasiveness as a mean to integrate concerns. Invasiveness
	means that AOP languages have unrestricted access to program properties.
	Such kind of languages are interesting because they allow performing
	complex operations and better introduce functionalities. In this
	report we present a classification of invasive patterns in AOP. This
	classification characterizes the aspects invasive behavior and allows
	developers to abstract about the aspect incidence over the program
	they crosscut.},
	Address = {http://hal.inria.fr/inria-00266555/en/},
	Author = {Munoz, Freddy and Baudry, Benoit and Barais, Olivier},
	Institution = {IRISA Research Center},
	Month = {March},
	Number = {inria-00266555},
	Title = {A classification of invasive patterns in AOP},
	Type = {Research report},
	Type_Rapport = {Rapport de recherche},
	Url = {http://www.irisa.fr/triskell/publis/2008/munoz2008a.pdf},
	X-Language = {EN},
	Year = {2008},
	x-abbrv = {tech report},
	keywords = {AOP, empirical}}