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.

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.

Related documents: XPSL Slides  |  XPSL Introduction  |  XPSL Examples  |  XPSL Reference

Home | Issues  | Vision | XCIL | XPSL | Pattern catalogs | KCS tools | Results | Services | Standards | Tech transfer