Journal:Informatica
Volume 22, Issue 2 (2011), pp. 289–317
Abstract
The aim of the paper is to investigate applicability of object-oriented software design patterns in the context of aspect-oriented design. The paper analyses which of the GoF 23 patterns have a meaning in this context and how they are affected by it. The main assumption is that there exist design patterns that solve software engineering paradigm independent design problems and that such patterns, in the contrast to the patterns solving paradigm-specific design problems, can be expressed in terms of any software engineering paradigm. However, the paper deals only with two paradigms: aspect-oriented (AO) paradigm and object-oriented (OO) paradigm. It proposes a classification of design problems based on this assumption and a technique for redesigning object-oriented patterns into pure aspect-oriented ones. It presents a number of examples how to apply this technique and discusses the results obtained. The results show that 20 of the GoF 23 design patterns solve such design problems that are common at least for both mentioned paradigms and demonstrate in which way these patterns can be adapted for the needs of aspect-oriented design.
Journal:Informatica
Volume 20, Issue 4 (2009), pp. 555–578
Abstract
ASPECTJ and composition filters are well-known influential approaches among a wide range of aspect-oriented programming languages that have appeared in the last decade. Although the two approaches are relatively mature and many research works have been devoted to their enhancement and use in practical applications, so far, there has been no attempt that aims at comparing deeply the two approaches. This article is a step towards this comparison; it proposes a mapping between ASPECTJ and Composition filters that put to the test the two approaches by confronting and relating their concepts. Our work shows that the mapping is neither straightforward nor one-to-one despite the fact that the two approaches belong to the same category and provide extension of the same Java language.