T2 : Aspect-Oriented Design in Ruby
Date: Monday, March 31, 2008 (afternoon)
Presenter: Dean Wampler, Object Mentor, Inc.
Level: Intermediate to advanced
Prerequisites: Experience designing and implementing software written in a dynamically-typed language like Ruby or Smalltalk. Experience in Object-Oriented Software Development (OOSD). Basic understanding of AOSD and AspectJ would be helpful.
Abstract
This tutorial teaches pragmatic aspect-oriented design (AOD) principles geared for "production" software, where long-term maintenance and evolution are important. The examples use Aquarium, an AOSD toolkit for Ruby. The particular characteristics of AOSD in dynamically-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).
Biography
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.