Separating Crosscutting Concerns Across the Lifecycle: From
Composition Patterns to AspectJ and Hyper/J
Siobhán
Clarke and Robert
J. Walker.
Technical report TCD-CS-2001-15, Department of Computer Science, Trinity College, Dublin, Ireland, and technical report UBC-CS-TR-2001-05, Department of Computer Science, University of British Columbia, Vancouver, Canada, 23 May 2001.
Both approaches can be seen to manipulate software at joinpoints, points in the execution or lexical description of that software. Joinpoints and the related code to execute at them can be considered as an event-based system. The exposure of events in AspectJ differs from that in implicit context---AspectJ considers these events as immediate and largely independent, while implicit context considers them as historic and interrelated through its \emph{call history} concept. We give an example of a system in which limiting the description of the events of interest to those currently available in AspectJ results in an error-prone and hard-to-evolve implementation, but in which the use of call history would lead to a more reusable and robust implementation. We also briefly examine the issue of EEK and its removal within this example.
URL: | http://www.cs.ubc.ca/labs/se/papers/2001/icse-asoc-jpoe.html |
File: | /pub/www/cs.ubc.ca/docs/labs/se/papers/2001/icse-asoc-jpoe.html |