It would be a good idea to read this file before taking a look at the implementation.

1) The implementation consists of the following components:
	
	* Library: The implementation of the AspectOPTIMA framework
	* Sample Applications: 4 sample applications that use the library

For further information on AspectOPTIMA framework and these sample applications, please consult my thesis titled 'Aspectual 
Decomposition of Transactions'. The pdf of the thesis (Guven_Thesis.pdf) is provided along with the implementation. 
Chapters 3,4,5,7 provide the description of AspectOPTIMA framework and chapter 6 explains the sample applications in detail.  	

2) The library.util.Debugger class may be used to see how the aspects interact with each other. I know the calls to the 
Debugger class have polluted the code of the aspects, but it is a very good way of analyzing the output. (By the way, I don't 
know why I have called it Debugger, it should be more like Logger or something.) The verbosity of the output could be set using 
the VERBOSITY variable of the Debugger class. Level 2 prints out everything, Level 1 prints out only the major details, while 
Level 0 doesn't print out anything.

3) The goal of the implementation was to see whether the proposed design (in my thesis) of AspectOPTIMA actually works. 
That means the implementation was research-oriented; it doesn't aim to create a bug-free, super-solid framework. Instead, it can serve 
as a sophisticated benchmark that may be used by other researchers who are willing to work on Aspect-Oriented Programming.

						Guven Bolukbasi
