SpringUtilities.java [Online]. Available at: http://docs.oracle.com/javase/tutorial/uiswing/examples/layout/SpringGridProject/src/layout/SpringUtilities.java [Accessed: 25th May 2013]
 MySQL Connector JAR, Version 5. [Online] Available at: http://dev.mysql.com/downloads/connector/j/ [Accessed: 14th June 2013]
 Eclipse Kepler. [Online] Available at: http://www.eclipse.org/kepler/ [Accessed: July 2013]
 MySQL Workbench. [Online] Available at: http://www.mysql.com/products/workbench/ [Accessed: January 2013]
Textbooks, Journals and Papers
Abdelmoez, W. et al. “Comparing Maintainability Evolution of Object-Oriented and Aspect-Oriented Software Product Lines”. 8th International Conference on Informatics and Systems – 14-16 May, pp. 53-60.
Baca, P. and Vranic, V. 2011. “Replacing Object-Oriented Design Patterns with Intrinsic Aspect-Oriented Design Patterns”. 2nd Eastern European Regional Conference on the Engineering of Computer Based Systems, pp. 19-26.
Borgida, A. 1986. “Exceptions in Object-Oriented Languages”. ACM Sigplan Notices 21(10), pp. 107-119.
Ceccato, M. 2007. “Migrating Object Oriented Code to Aspect Oriented Programming”, IEEE Conference onSoftware Maintenance, ICSM 2007, pp. 497-498.
Ernst, E. and Lorenz, D.H. 2003. Aspects and Polymorphism in AspectJ. Proceedings of the 2nd international conference on Aspect-oriented software development, pp. 150-157. : ACM
Hannemann, J. and Kiczales G. 2002. “Design Pattern Implementation in Java and AspectJ”. OOPSLA. Seattle, Washington, USA, November 4-8, 2002.
Lippert, M. and Lopes, C.V. 2000. “A Study on Exception Detection and Handling Using Aspect-Oriented Programming”, pp. 418-427
Murphy, G.C. and Walker, R.J. 1999. “Evaluating Emerging Software Development Technologies: Lessons Learnt from Assessing Aspect-Oriented Programming”. IEEE Transactions on Software Engineering 25 (4), pp. 438-455
Nuseibeh, B. 2004. Crosscutting Requirements. Proceedings of the 3rd international conference on Aspect-oriented software development, pp. 3-4.
Shinomi, H. and Tamai, T. 2005. “Impact Analysis of Weaving in Aspect-Oriented Programming”. Proceedings of 21st IEEE International Conference on Software Maintenance.
Zhang, S. et al. 2008. “Change Impact Analysis for AspectJ Programs”, IEEE International Conference on Software Maintenance, ICSM 2008, pp. 87-96.
Appendix A: Java Test Plan for Graphical User Interface
Valid Login Attempt
Prompt with confirmation, close login form and display main menu.
This pointcut detects when the body of the actionPerformed method within MainListener is executed, with a given ActionEvent argument, and the instance of MainListener containing the execution is captured. This is taken from the “Refresh” aspect.
5. Identify and list the classes and methods involved in adding a transaction in the AspectJ system. What is the crosscutting concern and what file is it in?
The control flow is similar to the Java version, however before reaching the executeQuery method for transactions in TransactionSQL, the “Validation” aspect advises before advice to validate the inputs. Additional credit would be for recognising the “Commit” aspect with rollback protection.
6. Any general comments on your experience with questions 4 and 5?
7. Do you think, after looking at the AspectJ code, that AOP would be useful, and why?
8. Give one potential benefit and one potential disadvantage of using AOP, in your opinion.
Appendix E: UML Diagrams
Figure : UML Activity Diagram for Editing Details
Figure : UML Activity Diagram for Transactions
Figure : UML Activity Diagram for Removal of Customers/Staff
Both original paper, and computer drawings, of GUI designs are listed below.
Figure : GUI Mockup for Login Screen
Figure : GUI Mockup of Main Menu
Figure : GUI Mockup of Transaction Form
Appendix G: Source Code Running Instructions
A zip file has been included with this submission, providing the source code for the two systems developed for the practical assessment. Unit test files are also included. This appendix details its contents and gives running instructions.
In the “Source” folder, you will find the .java and .aj files for each version respectively, and can be viewed using a standard text editor.
In addition to the source code, project files are included to allow the code to be easily transferred into Eclipse, in the “Projects” folder. Simply import the project using “File…Import”, select “Existing Projects in Workspace”, and browse to the correct folder:
MSc – Java
MSc – AspectJ
Running the AspectJ version in Eclipse will require an additional plugin:
Go to “Help…Install New Software”
In the “Work with…” input, paste http://download.eclipse.org/tools/ajdt/43/update
Select all the downloads, and then follow the on-screen instructions
Then follow the same import process as the Java version
The JAR file for SQL connections is also included. Please ensure this is in the Java build path for both projects.
Executable JAR Files
The following are executable JAR files, just double-click on their icon or run from the command line.
Both will create a text file for logging purposes when opened.
1 More information on object-oriented programming is provided from page 12.
2 Discussed in more detail in the “Current Status” section (p10)
3 www.hkbu.edu.hk/~shtong/tim.doc- Hong Kong Baptist University
4 Analysis of research material can be found in “Critical Analysis of Research Material” (p15)
5 The hypothesis can be read in the “Aims and Objectives” section (p6).
6 More information can be found at the Princeton University website, http://sip.cs.princeton.edu/projects/aspectml/