Title
Evolvable Pattern Implementations Need Generic Aspects
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. Evolution of a program into a 'patterned' form (also known as 'refactoring to patterns') and subsequent evolution of a 'patterned' design is largely left to the programmer. Due to their ability to encapsulate elements that crosscut different modules, aspect languages have the potential to change this situation. For many interesting patterns, a large part of the process of refactoring to patterns can already be implemented modularly in aspects. Still, existing aspect languages can only express a small number of typical patterns implementations in a generally reusable way. In many cases, evolution of an application that uses one pattern variant into one that uses another one cannot be achieved at all. In others, it requires duplicating parts of the aspect implementation, thus creating scattered code in the aspects and hindering their further evolution. In this paper, we argue that aspect languages need to provide genericity in order to support reusable pattern implementations. We sketch the main features of the generic aspect language LogicAJ , and show how it supports software evolution. In particular, we demon- strate how LogicAJ enables evolution of a non-patterned implementation to a patterned one and easy transition from one patterned implementation to another.
Year
Venue
Keywords
2004
RAM-SE
software evolution,design pattern,object oriented,software systems
Field
DocType
Citations 
Programming language,Adapter pattern,Software analysis pattern,Computer science,Distributed design patterns,Software design pattern,Theoretical computer science,Software evolution,Architectural pattern,Code refactoring,Software development
Conference
27
PageRank 
References 
Authors
1.97
4
3
Name
Order
Citations
PageRank
Günter Kniesel137530.06
Tobias Rho2787.33
Stefan Hanenberg367248.36