TY - JOUR
T1 - Aspectual collaborations
T2 - Combining modules and aspects
AU - Lieberherr, Karl
AU - Lorenz, David
AU - Ovlinger, Johan
N1 - Special Issue on AOP and Separation of Crosscutting Concerns
PY - 2003/1/1
Y1 - 2003/1/1
N2 - Complex behavior often resists clean modularization in object-oriented languages. Aspect-oriented programming tackles this problem by providing flexible module boundaries that can span and partition classes. However, in order to achieve this flexibility, valuable modularity mechanisms, such as encapsulation and external composition, are lost. The ability to separately compile or reason about a modular unit is also compromised. We propose that this tradeoff is not necessary and that by expressing aspects as part of our modules, we can restore the lost modular properties while maintaining aspectual features. As a concrete demonstration, we present the main features of Aspectual Collaborations and show how these interact to combine modularity with aspectual behavior. The expressiveness of Aspectual Collaborations, AspectJ and Hyper/J are compared using a challenge problem, allowing us to estimate the effectiveness of the approach.
AB - Complex behavior often resists clean modularization in object-oriented languages. Aspect-oriented programming tackles this problem by providing flexible module boundaries that can span and partition classes. However, in order to achieve this flexibility, valuable modularity mechanisms, such as encapsulation and external composition, are lost. The ability to separately compile or reason about a modular unit is also compromised. We propose that this tradeoff is not necessary and that by expressing aspects as part of our modules, we can restore the lost modular properties while maintaining aspectual features. As a concrete demonstration, we present the main features of Aspectual Collaborations and show how these interact to combine modularity with aspectual behavior. The expressiveness of Aspectual Collaborations, AspectJ and Hyper/J are compared using a challenge problem, allowing us to estimate the effectiveness of the approach.
UR - http://www.scopus.com/inward/record.url?scp=0042912981&partnerID=8YFLogxK
U2 - 10.1093/comjnl/46.5.542
DO - 10.1093/comjnl/46.5.542
M3 - ???researchoutput.researchoutputtypes.contributiontojournal.article???
AN - SCOPUS:0042912981
SN - 0010-4620
VL - 46
SP - 544
EP - 565
JO - Computer Journal
JF - Computer Journal
IS - 5
ER -