by
Kouhei Sakurai,
Hidehiko Masuhara, Naoyasu Ubayashi, Saeko Matsuura and Seiichi Komiya
Abstract:
This paper describes the design and implementation of association aspects, which are a linguistic mechanism for the AspectJ language that concisely associates aspect instances to object groups by extending the per-object aspects in AspectJ. This mechanism allows an aspect instance to be associated to a group of objects, and by providing a new pointcut primitive to specify aspect instances as execution context of advice. With association aspects, we can straightforwardly implement crosscutting concerns that have stateful behavior related to a particular group of objects. The new pointcut primitive can more flexibly specify aspect instances when compared against previous implicit mechanisms. We implemented a compiler for association aspects by modifying the AspectJ compiler, which reduces the size of data structures for keeping associations. Our benchmark tests confirm that the overheads of association aspects are reasonably small when compared against functionally equivalent aspects in pure AspectJ that manually manage associations. The expressiveness of association aspects is demonstrated through development of an integrated development environment with and without association aspects.
Reference:
Design and Implementation of An Aspect Instantiation Mechanism (Kouhei Sakurai, Hidehiko Masuhara, Naoyasu Ubayashi, Saeko Matsuura and Seiichi Komiya), In LNCS Transactions on Aspect-Oriented Software Development (Awais Rashid, Mehmet Akşit, eds.), volume 3880/2006, 2006. (Extended from [sakurai2004aosd].)
Bibtex Entry:
@article{sakurai2006taosd,
author = {Kouhei Sakurai and Hidehiko Masuhara and Naoyasu
Ubayashi and Saeko Matsuura and Seiichi Komiya},
pdf = {taosd2006.pdf},
title = {Design and Implementation of An Aspect Instantiation Mechanism},
year = 2006,
editor = {Awais Rashid and Mehmet Ak\c{s}it},
pages = {259--292},
journal = {LNCS Transactions on Aspect-Oriented Software Development},
volume = {3880/2006},
note = {Extended from \cite{sakurai2004aosd}.},
doi = {10.1007/11687061_8},
keywords = {AspectJ},
abstract = {This paper describes the design and implementation of association aspects, which are a linguistic mechanism for the AspectJ language that concisely associates aspect instances to object groups by extending the per-object aspects in AspectJ. This mechanism allows an aspect instance to be associated to a group of objects, and by providing a new pointcut primitive to specify aspect instances as execution context of advice. With association aspects, we can straightforwardly implement crosscutting concerns that have stateful behavior related to a particular group of objects. The new pointcut primitive can more flexibly specify aspect instances when compared against previous implicit mechanisms. We implemented a compiler for association aspects by modifying the AspectJ compiler, which reduces the size of data structures for keeping associations. Our benchmark tests confirm that the overheads of association aspects are reasonably small when compared against functionally equivalent aspects in pure AspectJ that manually manage associations. The expressiveness of association aspects is demonstrated through development of an integrated development environment with and without association aspects.}
}