The research field of Aspect-Oriented Software Development investigates the notion of crosscutting concerns in software systems. It has been shown that there are certain concerns (such as synchronisation and persistence) that can be thought of in a modular way but which cannot be implemented in program code without interfering with virtually all parts of the system. AOSD tries to reach a better understanding of this phenomena and tries to come up with novel solutions. Often these solutions take the form of new programming language constructs which are part of a new paradigm called Aspect-Oriented Programming (AOP). To allow crosscutting concerns to be expressed in a modular way AOP introduces a new kind of program module called an aspect. These aspects are generally processed using a new type of compiler called a weaver which weaves the crosscutting bits of code in the relevant places in the base code of the program at compile time.
A fundamental problem in AOSD is the aspect composition program which occurs when different aspects need to be composed. The question how different, independently developed, aspects can be weaved together through a single base program is largely unresolved. The main is issue is that weaving the different aspects destructively changes the base program and therefore the different aspects can influence each other. The absence of a scientifically underpinned theory for aspect composition can thus be blamed on the lack of a scientific definition of aspect interaction.
In this project we want to tackle this program using a transaction al approach. The problematic interactions between aspects and base code boil down to destructive changes to are being made to the values of shared variables. This type of memory access can be modelled as transactions, a concept which is rooted in database theory. Using a transactional approach the question whether certain aspects can be combined can be answered by check if the transactions the aspects require can be serialised or not.
The core of this project will be thus be devoted to finding ways in which transaction and serialisation theory can be applied to resolve the aspect composition and interaction problem.