Patterns of Aspect-Oriented Design.

James Noble, Arno Schmiedmeier, David J. Pearce, Andrew P. Black · 2007

Aspect-oriented programming languages are becoming commonplace, and programmers are accumulating experience in building and maintaining aspect-oriented systems. This paper addresses how the use of these languages affects program design: how aspect-oriented languages change the design space, which designs should be emulated and which avoided, and the strengths and weaknesses of particular kinds of design. We identify five patterns of aspect-oriented design: Spectator, Regulator, Patch, Extension, and Heterarchical Design. For each pattern, we describe the problem it solves, show how aspect-oriented language features are used in the pattern, give characteristic examples of the pattern’s use, and assess its benefits and liabilities. Our patterns provide the beginnings of a taxonomy of aspect-oriented design. We believe that they should help programmers to understand and evaluate existing aspect-oriented designs, to improve new designs, to make better use of the aspect-oriented features of new programming languages, and also guide those who wish to implement these patterns in non aspect-oriented languages. Dear Workshop: this paper already has an interesting history, and we plan to do more with it after the workshop. For EuroPLoP, we have expanded the patterns part of the paper, indeed, the first two patterns were one in the prior version. It still remains to significantly increase the depth of description and analysis in each pattern. We expect to remove much of the discussion material (into a different paper), but are including it here so you can have some idea where we’re coming from. Authors ◮We’ve also included our comments so you can see some of our questions: this really is a work in progress.◭ Probably the most mature part of the paper is the first 3-4 patterns, so we suggest you focus on those — we look forward to your comments! 1

Read the paper · More papers on PaperTik