Aspect-Oriented Design in Java/AspectJ and Ruby

Dean Wampler. Aspect-Oriented Design in Java/AspectJ and Ruby. In 29th International Conference on Software Engineering (ICSE 2007), Minneapolis, MN, USA, May 20-26, 2007, Companion Volume. pages 184-185, IEEE Computer Society, 2007. [doi]

Abstract

This tutorial teaches professional developers design principles for “production-quality”, aspect-oriented software, written in Java/AspectJ and Ruby. The discussion starts with a review of the rationale for aspect-oriented software development (AOSD), how it solves some key problems in enterprise applications, followed by a discussion of tool options and techniques for both languages.

After reviewing some of the problems developers encountered during early attempts at aspect-oriented design (AOD), recent strategies for addressing those problems are discussed. The majority of the tutorial then covers extensions to standard object-oriented principles and patterns that support designing and implementing aspect software that is agile, robust, maintainable, testable, 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 architectures and frameworks.