AOSD Conference
›› Keynotes
›› Research Track
›› Industry Track
›› Demonstrations
›› Tutorials
›› Workshops
›› Spring School

Back to list of tutorials

T2 : Aspect-Oriented Design in Java/AspectJ and Ruby

Date Monday, March 12, 2007 (half day)
Presenters Dean Wampler, Object Mentor, Inc.
Level Intermediate Experience designing and implementing software written in a static language like Java or C# and/or a dynamic language like Ruby or Python. Experience in Object-Oriented Software Development (OOSD). Basic understanding of AOSD and AspectJ.
Room Finback


This tutorial teaches pragmatic aspect-oriented design (AOD) principles geared for “production” software, where long-term maintenance and evolution are important. The examples and group exercises use Java/AspectJ and Ruby, allowing us to compare and contrast AOD in statically- and dynamically-typed languages.

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 improve frameworks and application architectures.

The tutorial includes several detailed examples and group exercises.


Dean Wampler, Ph.D., is the presenter of this tutorial. Dean is a Consultant at Object Mentor, Inc. and the founder of the AOSD advocacy site,, as well as the open-source Design by Contract tool Contract4J. He speaks frequently at industry conferences on AOSD topics.

Edited by the AOSD Conference Committee.  Send comments to: