Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Software architecture: perspectives on an emerging discipline
Software architecture: perspectives on an emerging discipline
Generative programming: methods, tools, and applications
Generative programming: methods, tools, and applications
Component Software: Beyond Object-Oriented Programming
Component Software: Beyond Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Understanding aspects: extended abstract
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Beyond AOP: toward naturalistic programming
ACM SIGPLAN Notices
What are the key issues for commercial AOP use: how does AspectWerkz address them?
Proceedings of the 3rd international conference on Aspect-oriented software development
Towards aspect weaving applications
Proceedings of the 27th international conference on Software engineering
Pluggable AOP: designing aspect mechanisms for third-party composition
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Modeling aspect mechanisms: a top-down approach
Proceedings of the 28th international conference on Software engineering
Identifying Feature Interactions in Multi-Language Aspect-Oriented Frameworks
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Hi-index | 0.00 |
The manifestation of miscellaneous aspect-oriented extensions raises the question of how these extensions can be used together to combine their aspectual capabilities or reuse aspect code across extensions. While white-box composition of aspect mechanisms can produce an optimal compound mechanism, as exemplified by the merger of AspectJ and AspectWerkz into AspectJ 5, it comes with a high integration cost. Meanwhile, generic black-box composition can compose arbitrary aspect mechanisms, but may result in a compound mechanism that is suboptimal in comparison to white-box composition. For a particular family of aspect extensions, e.g.,AspectJ-like mechanisms, glass-box composition offers the best of two worlds. Glass-box may rely on the internal structure of, e.g., a pointcut-and-advice mechanism, without requiring a change to the code of the individual mechanisms. In this paper we compare white-, black-, and glass-box composition of aspect mechanisms. We explain subtle composition issues using an example drawn from the domain of secure and dependable computing, deploying a fault-tolerance aspect written in AspectWerkz together with an access-control aspect written in AspectJ. To compare the three composition methods, we integrate a TinyAJ extension with a TinyAW extension, and compare the results of running the aspects in a black-box framework and in a glass-box framework to the result of running these aspects in AspectJ 5.