T1 : Aspect-Oriented Design in Java/AspectJ

Date: Monday, March 31, 2008 (morning)

Presenter: Dean Wampler, Object Mentor, Inc.

Level: Intermediate to advanced

Prerequisites: Experience designing and implementing software written in a static language like Java or C#. Experience in Object-Oriented Software Development (OOSD). Basic understanding of AOSD and AspectJ.


This tutorial teaches pragmatic aspect-oriented design (AOD) principles geared for "production" software, where long-term maintenance and evolution are important. The examples use Java and AspectJ, the most popular languages today where AOP is in "production" use. The particular characteristics of AOSD in statically-typed languages are emphasized.

The tutorial starts with a review of the typical problems developers encounter using AOSD. With this motivation, the tutorial presents a set of strategies, design principles, and patterns for addressing those problems. The design principles are extensions to established object-oriented principles that support designing aspect software that is robust, maintainable, and reusable. Guidelines for when to use aspects vs. other techniques are covered.

The tutorial concludes with a look forward to ways that aspects could address emerging issues, like concurrency, and emerging practices, like the use of "domain-specific languages" (DSLs).


Dean Wampler, Ph.D. is a Consultant with Object Mentor, Inc. He is also the founder of the open-source Aquarium AOP toolkit for Ruby and the Design by Contract tool Contract4J for Java. He also maintains the AOSD advocacy site, He speaks frequently at industry conferences on AOSD and other topics.


Instant Feedback