Special Topics in Software Engineering:

Aspect-Oriented Programming and AspectJ

339.332 1KV Kozsik Block Begin: 23.5.2012

Aspect-oriented programming is a technique for better "separation of concerns". In the object-oriented programming paradigm, the programmer is forced to modularize her program in accordance with its class/object structure. Certain elements of the code, however, do not fit well in this structure. AOP enables us to create modules from these "cross-cutting concerns", and hence it has a positive impact on readability and maintainability of software. The most well-known aspect system is AspectJ, which is an extension to Java. This course discusses the ideas behind aspect-oriented programming, and gives a detailed presentation of the AspectJ language.


Dr. Tamas Kozsik
Eötvös Lorand University Budapest


Date Time Room
We 23.5.2012 15:30 - 18:00 BA 9910
Th 24.5.2012 15:30 - 18:00 BA 9910
Fr 25.5.2012 12:45 - 15:15 BA 9908


  1. Motivation and the big picture
  2. AOP concepts
  3. AspectJ: the language
  4. Development aspects
  5. Production aspects
  6. Reusable aspects
  7. AspectJ tools


Students will have to do a project and send it to the lecturer. The marks for this course will be based on the project.
The specification of the projects can be found here.


  1. Slides planned for the course, printer-friendly version
  2. AspectJ project (incl. Programming Guide and Developer's Notebook)
  3. Mastering AspectJ: Aspect-Oriented Programming in Java (J.D. Gradecki,
  4. AspectJ in Action: Enterprise AOP with Spring Applications (R. Laddad) Manning 2010, ISBN 978-1-933988-05-4