Assessment of the aspect-oriented programming paradigm

Rhys J O'Sullivan

Supervised by Andrew Jones, Moderated by Matthew Williams

The aim of aspect-oriented programming is to overcome the problem that in conventional programming it is often difficult to avoid a design decision having impact on many different parts of the program code of a system, even if an object-oriented approach is taken. In this project you will investigate aspect-oriented programming and design an application whose implementation is intended to help you compare the aspect-oriented and traditional object-oriented approaches. You will implement this application using a traditional object-oriented language (such as Java) and using an aspect-oriented language (such as AspectJ), keeping careful track of the implementation decisions that need to be taken in each case. You will then draw on the experience gained in doing these tasks in order to help you evaluate the usefulness of aspect-oriented programming and any difficulties that the paradigm presents. For information on aspect-oriented programming, the Wikipedia entry is quite good (at least at the time of writing this project description): AspectJ's home page is here:

Final Report

Publication Form