Evolvable Pattern Implementations Need Generic Aspects
Günter Kniesel, Tobias Rho, Stefan Hanenberg · 2004
Abstract. Design patterns are a standard means to create large software systems. However, with standard object-oriented techniques, typical implementations of such patterns are not themselves reusable software entities. Hence, providing typical implementation of such patterns and connecting them to a piece of software needs to be done by hand which is an error-prone process. Aspect languages have the potential to change this situation, due to their ability to encapsulate elements that crosscut different modules. Still, existing aspect languages can only express a small number of typical patterns implementations in a generally reusable way. In this paper, we point out the limitations of known aspect-oriented languages, define the notion of a generic aspect language (generAL) and argue that generic aspects are a natural way to achieve reusable design pattern implementations. We sketch the main features of one particular generic aspect language, LogicAJ, and show how it enables generic implementations of recurring design pattern implementations. In particular it permits to switch easily from one pattern implementation variant to another, which significantly eases the evolution of software. 1