An eXtensible Pattern Specification Language (XPSL)

 
 

 

Aspects provide a foundation for the definition of design patterns in software models and code. 

Not all patterns, however, can be represented as aspects. 

To extend the foundation provided by aspect-oriented software development (AOSD) to include other types of design patterns, we need a deeper understanding of pointcuts and their relationship to more general transformations. 

XPSL provides a definition of pointcut based on the use of meta-modeling abstractions that is appropriate for a broad range of transformations. 

These include transformations of existing code structure (refactoring and general transformations) in addition to aspect weaving.

The use of meta-modeling abstractions as the basis for pointcut definitions also provides a cleaner separation between the problem addressed by a pattern and its solution.

This is particularly important when a number of design patterns provide different solutions to the same problem, and when we want to be able to easily substitute one pattern for another in order to fit a given context.