Over the last few years, different aspect-oriented programming approaches have been developed, all of which can be used by a developer to modularize crosscutting application concerns at the code level. Each approach, however, is based on different technology, provides different abstractions, mechanisms, modules and language extensions, and ultimately leads to a different application design. This
... [Show full abstract] paper describes an experiment, in which the same application has been implemented using three different AOP approaches: AspectJ, Hyper/J and AspectWerkz. The differences between the three designs are highlighted, and the technology, language features, ease-of-use and reuse capabilities of the approaches are compared.