Course Description:

Aspect Oriented Programming (AOP)


This course provides a strong understanding of Aspect Oriented Programming (AOP). It is a hands-on course that provides a detailed introduction to Aspect oriented programming and Aspect Oriented Software Design (AOSD). Attendees will get a good overview and understanding of topics and concepts including:

         What is AOP?

         What are Aspects and Cross-cutting concerns?

         Why AOP?

         AOP and its relationship to OO and Component technologies

         Tools available for programming Aspects

         Adopting Aspects in the Enterprise Aspect Oriented Software Development (AOSD)

         Static Aspects (and AspectJ)

         Dynamic Aspects

         Spring AOP

         JBoss AOP

Each section introduces and explains a concept or technology, followed, as relevant and necessary, by a coding section to help the attendee understand the concept. Attendees may then be given an opportunity to run lab exercises that reinforce the concepts and coding that they have just learned.


Lab exercises will reinforce concepts learnt in class. Roughly a fourth of the class is will involve labs and lab related tasks


Target Audience:

         Developers who wish to understand and consider incorporating Aspects and AOP into their project

         Technical Architects who are planning on using AOP for enterprise solutions




         Basic knowledge of OO programming and at least one OO programming language (such as Java or c++)



         Strong understanding of Object-Oriented (OO) concepts and OO programming

         Distributed computing concepts and architectures, such as Client-Server or 3/n-tier.

         Experience developing server-side applications using any technology/language

Course Objectives:


At the end of this course, attendees will be able to make decisions regarding when it is appropriate and when it is not appropriate to leverage Aspects and Aspect Oriented Programming.


In addition, by the end of this course, attendees will have a very good conceptual understanding of:


* What Aspect Oriented Programming is all about

* The relationship between AOP and OO and Component technologies

* Choice of Tools available to leverage AOP

* Aspect Oriented Software Development

* Leveraging AOP to implement cross-cutting functionality into any application

* Understanding Static and Dynamic Aspects (including AspectJ, Spring & JBoss AOP)


Course Duration:

         This course will span three days.


J2EE Part 1

J2EE Part 2