Non-Regular Stateful Aspects

SUBJECT

Aspect-Oriented Programming (AOP)[1,2] is a recent software programming paradigm that aims at providing a better separation of concerns. At its root is the observation that some concerns cannot be cleanly modularized using traditional abstraction mechanisms such as class hierarchies. These so-called crosscutting concerns will therefore inevitably appear scattered across different modules of the system, making them difficult to comprehend and maintain. Typical examples of such concerns are tracing, synchronization and transaction management.

In order to enable a clean modularization of crosscutting concerns, AOP techniques such as AspectJ [3] or JAsCo [4] introduce the concept of an aspect, in addition to the use of regular classes. An aspect defines a set of join points in the target application where advices alter the regular execution. The set of joint points is declaratively specified through a pointcut. The aspect logic is then automatically woven into the target application.

Although AOP research originally focused on a model where aspects are invoked on static locations in the compile-time structure of the program, it was early on argued that the applicability of certain so-called jumping aspects [5] can only be expressed in terms of dynamic conditions. Most of the current approaches therefore feature a dynamic join point model, i.e. a model where the join points are run-time events of the program execution. As such, it becomes possible to invoke aspect behavior based on run-time types, call-stack context (e.g. AspectJ's cflow() pointcut), dynamically evaluated expressions,…

Describing the applicability of aspects in terms of a sequence or protocol of run-time events however, is generally not supported. With the exception of the cflow() pointcut, the pointcuts of current mainstream AOP languages cannot refer to the history of previously matched pointcuts in their specification. In order to trigger an aspect on a protocol sequence of join points, one is obliged to program code for maintaining a state regarding the occurrence of relevant join points, as such implementing the protocol by hand. Not only is this a cumbersome task, but it is also conceptually undesirable, because it involves mixing the aspect-applicability control-mechanism with the advice code itself.

Recently, several AOP approaches (such as JAsCo[6] or EAOP[10]) include support for a kind of stateful aspects. Most of these languages are however quite limited in their stateful expressiveness. Most notably, support for efficient non-regular pointcuts is not available.

Objectives of the Apprenticeship and Thesis

Developing a language model for stateful aspects that improves over current state-of-the-art. Concretely, the following workpoints are identified:

  1. Identify a suitable model to represent non-regular stateful aspects
  2. Integrate non-regularity in an existing stateful aspect language, the student can choose one of the following: JAsCo[6,7], FuseJ[8] or Eco[9]
  3. Implement the language using the identified model in step 1.

Prerequisites

  • general knowledge of Object-Oriented Software Development
  • a good understanding of Java is useful

Environment

Main location: System and Software Engineering Lab, Vrije Universiteit Brussel, Brussels, Belgium.

Research Visit: There is a possibility to conduct part of the stage and/or thesis abroad at the University of Nantes, France together with prof. Mario Sudholt. The student will be encouraged, though not obliged, to take this opportunity. Of course, expenses regarding travel and stay will be sufficiently reimbursed.

References

[1] Kiczales, G., Lamping, J., Lopes, C.V., Maeda, C., Mendhekar, A. and Murphy, A. Aspect-Oriented Programming. In proceedings of the 19th International Conference on Software Engineering (ICSE), Boston, USA. ACM Press. May 1997.
[2] AOP/AOSD website : http://www.aosd.net
[3] AspectJ website: http://www.eclipse.org/aspectj
[4] JAsCo website: http://ssel.vub.ac.be/jasco
[5] J. Brichau, W. De Meuter, and K. De Volder. Jumping Aspects. In Workshop on Aspects and Dimensions of Concerns (ECOOP 2000), June 2000.
[6] Vanderperren, W., Suvee, D., Cibran, M. and De Fraine, B. Stateful Aspects in JAsCo. In proceedings of SC 2005, LNCS, April 2005.
[7] De Fraine, B., Vanderperren, W., Suvee, D. and Brichau, J. Jumping Aspects Revisited. In Proceedings of DAW 2005, Chicago, USA, March 2005.
[8] Suvee, D., De Fraine, B., Cibran, M., Verheecke, B., Joncheere, N. and Vanderperren, W. Evaluating FuseJ as a Web Service Composition Language. In Proceedings of the 3rd European Conference on Web Services (ECOWS 2005), pages 25-35, Vaxjo, Sweden, November 2005. IEEE Computer Society.
[9] De Fraine, B., Vanderperren, W. and Suvee, D. Aspect programming in Eco. Submitted to SC 2006, Wien, Austria, March 2006.
[10] R. Douence, P. Fradet, and M. S¨udholt. Composition, Reuse and Interaction Analysis of Stateful Aspects. In Proceedings of the 3th International Conference on Aspect-Oriented Software Development, Lancaster, UK, March 2004.

 
teaching/thesis0607/proposals/stateful.txt · Last modified: 13/03/2006 12:40 by wvdperre
 

© 2003-2010 • System and Software Engineering Lab • Submit comments and bugs to our Bugzilla or to the webmaster