Download PDF

A System of Patterns for the Design of Reusable Aspect Libraries (Een syteem van patronen voor het ontwerp van herbruikbare bibliotheken van aspecten)

Publication date: 2011-10-05

Author:

Bynens, Maarten

Keywords:

Aspect-oriented software development, Software reuse, Design patterns

Abstract:

Contemporary software systems are complex compositions of diverse kinds of functionality. A key driver in reducing the cost of software development is the availability of reusable libraries. Aspect-oriented software development (AOSD) enables the localization of functionality that traditionally crosscuts the decomposition of the system. However, it remains a challenge to develop reusable aspect libraries. The reason for this is the specific nature of aspect-oriented (AO) composition. It leads to a tight and fragile coupling between aspects and base and makes it hard to manage the implicit interactions that exist between different aspects.The goal of this dissertation is to incept, describe, classify and integrate idioms and patterns for the architecture, design and implementation of reusable aspect libraries. These libraries should exhibit three reuse qualities: versatility, stability and ease-of-configuration. Versatile aspects are not coupled to any specific application, but are rather applicable to a wide range of applications. Stable aspects are both robust with respect to changes in the base code and extensible to realize new requirements. Easy configuration limits the effort and AO knowledge required to use the library in combination with a specific application.Initial research on idioms and patterns for AOSD mainly present them as independent solutions to isolated problems. They are fragmentary contributions that are not targeted towards a common goal or problem context. They lack encompassing knowledge that binds and integrates them in a coherent framework. As a result, there is little guidance in selection of the appropriate pattern, especially in the context of reusable aspect libraries.These insufficiencies form the basis of the main contributions for this dissertation. We present a structured catalog of patterns with a focus on one coherent problem context, namely, how to design reusable aspect libraries that can be easily deployed in various applications, and that are stable in the presence of evolution. We extend this catalog with a sequence of patterns that guides the development of reusable aspect libraries with easy configuration. The sequence sets out a step-wise approach and presents a first step towards a pattern language. In subsequent steps it results in an extensible and configurable core design with library-controlled mediation of the internal aspect interactions and provides multiple alternative configuration modes. Additionally, we evaluate the benefits of using the patterns and applying the pattern sequence in multiple case studies. The analyzed benefits are versatility, stability and easy configuration.In summary, the main contribution of our work is an evaluated and structured collection of patterns augmented with a step-wise approach for the architecture, design and implementation of reusable aspect libraries with easy configuration.