skip to main content
article

Awesome: an aspect co-weaving system for composing multiple aspect-oriented extensions

Published: 21 October 2007 Publication History

Abstract

Domain specific aspect-oriented language extensions offer unique capabilities to deal with a variety of cross cutting concerns. Ideally, one should be able to use several of these extensions together in a single program. Unfortunately, each extension generally implements its own specialized weaver and the different weavers are incompatible. Even if the weavers were compatible, combining them is a difficult problem to solve in general, because each extension definesits own language with new semantics. In this paper we present a practical composition framework, named A<scp>wesome</scp>, for constructing a multi-extension weaver by plugging together independently developed aspect mechanisms. The framework has a component-based and aspect-oriented architecture that facilitates the development and integration of aspect weavers. To be scalable, the framework provides a default resolution of feature interactions in the composition. To be general, the framework provides means for customizing the composition behavior. Furthermore, to be practically useful, there is no framework-associated overhead on the runtime performance of compiled aspect programs. To illustrate the A<scp>wesome</scp> framework concretely, we demonstrate the construction of a weaver for a multi-extension AOP language that combines Cool and AspectJ. However, the composition method is not exclusive to Cool and AspectJ-it can be applied to combine any comparable reactive aspect mechanisms.

References

[1]
J. Aldrich. Open modules: Modular reasoning about advice. In Proceedings of the 19th European Conference on Object-Oriented Programming (ECOOP'05), number 3586 in Lecture Notes in Computer Science, pages 144--168, Glasgow, UK, July 25--29 2005. Springer Verlag.
[2]
Proceedings of the 3rd International Conference on Aspect-Oriented Software Development (AOSD'04), Mancaster, UK, Mar. 17--21 2004. ACM Press.
[3]
I. Aracic, V. Gasiunas, M. Mezini, and K. Ostermann. An overview of CaesarJ. In Rashid and Aksit {35}, pages 135--173.
[4]
P. Avgustinov, A. S. Christensen, L. Hendren, S. Kuzins, J. Lhoták, O. Lhoták, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. abc: an extensible AspectJ compiler. In Proceedings of the 4th International Conference on Aspect-Oriented Software Development (AOSD'05), pages 87--98, Chicago, Illinois, USA, Mar. 14--18 2005. ACM Press.
[5]
P. Avgustinov, A. S. Christensen, L. J. Hendren, S. Kuzins, J. Lhoták, O. Lhoták, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. abc: an extensible AspectJ compiler. In Rashid and Aksit {35}, pages 293--334.
[6]
J. Boner. What are the key issues for commercial AOP use: how does AspectWerkz address them? In AOSD'04 {2}, pages 5--6.
[7]
C. Clifton and G. T. Leavens. Obliviousness, modular reasoning, and the behavioral subtyping analogy. In Proceedings of the AOSD'03 Workshop on Software-engineering Properties of Languages for Aspect Technologies (SPLAT'03), Boston, Massachusetts, Mar. 18 2003. AOSD'03, ACM Press.
[8]
K. De Volder, J. Brichau, K. Mens, and T. D'Hondt. Logic meta-programming, a framework for domain-specific aspect programming languages. Unpublished, 2001.
[9]
M. D'Hondt and T. D'Hondt. Is domain knowledge an aspect? In Proceedings of the ECOOP'99 International Workshop on Aspect-Oriented Programming, Lisbon, Portugal, June 1999.
[10]
Proceedings of the 17th European Conference on Object-Oriented Programming (ECOOP'03), number 2743 in Lecture Notes in Computer Science, Darmstadt, Germany, July 21--25 2003. Springer Verlag.
[11]
Proceedings of the AOSD'05 Workshop on Foundations of Aspect-Oriented Languages (FAOL'05), Chicago, IL, USA, Mar. 14 2005. ACM Press.
[12]
R. E. Filman, T. Elrad, S. Clarke, and M. Akşit, editors. Aspect-Oriented Software Development. Addison-Wesley, Boston, 2005.
[13]
R. E. Filman and D. P. Friedman. Aspect-Oriented programming is quantification and obliviousness. In P. Tarr, L. Bergmans, M. Griss, and H. Ossher, editors, Proceedings of the OOPSLA 2000 Workshop on Advanced Separation of Concerns. Department of Computer Science, University of Twente, The Netherlands, 2000.
[14]
R. E. Filman and D. P. Friedman. Aspect-Oriented programming is quantification and obliviousness. In Filman et al. {12}, pages 21--35.
[15]
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Professional Computing. Addison-Wesley, 1995.
[16]
W. Havinga, I. Nagy, L. Bergmans, and M. Akşit. Detecting and resolving ambiguities caused by inter-dependent introductions. In Proceedings of the 5th International Conference on Aspect-Oriented Software Development (AOSD'06), pages 214--225, Bonn, Germany, Mar. 20--24 2006. ACM Press.
[17]
E. Hilsdale and J. Hugunin. Advice weaving in AspectJ. In AOSD'04 {2}, pages 26--35.
[18]
Proceedings of the 21st International Conference on Software Engineering (ICSE'99), Los Angeles, California, May 1999. IEEE Computer Society.
[19]
R. Jagadeesan, A. Jeffrey, and J. Riely. An untyped calculus for aspect oriented programs. In ECOOP'03 {10}, pages 54--73.
[20]
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An overview of AspectJ. In Proceedings of the 15th European Conference on Object-Oriented Programming (ECOOP'01), number 2072 in Lecture Notes in Computer Science, pages 327--353, Budapest, Hungary, June 18--22 2001. Springer Verlag.
[21]
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-Oriented programming. In Proceedings of the 11th European Conference on Object-Oriented Programming (ECOOP'97), number 1241 in Lecture Notes in Computer Science, pages 220--242, Jyväskylä, Finland, June 9--13 1997. Springer Verlag.
[22]
S. Kojarski and D. H. Lorenz. Pluggable AOP: Designing aspect mechanisms for third-party composition. In Proceedings of the 20th Annual Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA'05), pages 247--263, San Diego, CA, USA, Oct. 16-20 2005. ACM Press.
[23]
S. Kojarski and D. H. Lorenz. Modeling aspect mechanisms: A top-down approach. In Proceedings of the 28th International Conference on Software Engineering (ICSE'06), pages 212--221, Shanghai, China, May 20--28 2006. ACM Press.
[24]
S. Kojarski and D. H. Lorenz. Identifying feature interactions in Aspect-Oriented frameworks. In Proceedings of the 29th International Conference on Software Engineering (ICSE'07), Minneapolis, MN, May 20--26 2007. IEEE Computer Society.
[25]
K. Lieberherr and D. H. Lorenz. Coupling Aspect-Oriented and Adaptive Programming. In Filman et al. {12}, pages 145--164.
[26]
K. J. Lieberherr. Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns. PWS-Kent Publishing, 1996.
[27]
C. V. Lopes. D: A Language Framework for Distributed Programming. PhD thesis, Northeastern University, 1997
[28]
D. H. Lorenz and S. Kojarski. Understanding aspect interactions, co-advising and foreign advising. In Proceedings of ECOOP'07 Second International Workshop on Aspects, Dependencies and Interactions, pages 23--28, Berlin, Germany, July 30 2007.
[29]
H. Masuhara and G. Kiczales. Modeling crosscutting in Aspect-Oriented mechanisms. In ECOOP'03 {10}, pages 2--28.
[30]
H. Masuhara, G. Kiczales, and C. Dutchyn. Compilation semantics of Aspect-Oriented programs. In FAOL'05 {11}, pages 17--26.
[31]
H. Masuhara, G. Kiczales, and C. Dutchyn. A compilation and optimization model for Aspect-Oriented programs. In Compiler Construction, number 2622 in Lecture Notes in Computer Science, pages 46--60, 2003.
[32]
G. C. Murphy, R. J. Walker, and E. L. A. Baniassad. Evaluating emerging software development technologies: Lessons learned from assessing Aspect-Oriented programming. IEEE Transactions on Software Engineering, 25(4):438--455, 1999.
[33]
G. C. Murphy, R. J. Walker, E. L. A. Baniassad, M. P. Robillard, A. Lai, and M. A. Kersten. Does aspect-oriented programming work? Commun. ACM, 44(10):75--77, Oct. 2001.
[34]
H. Ossher and P. Tarr. Hyper/J: multi-dimensional separation of concerns for Java. In Proceedings of the 22nd International Conference on Software Engineering (ICSE'00), pages 734--737, Limerick, Ireland, June 2000. ICSE'00, IEEE Computer Society.
[35]
A. Rashid and M. Aksit, editors. Transactions on Aspect-Oriented Software Development I, number 3880 in Lecture Notes in Computer Science. Springer Verlag, 2006.
[36]
M. Shonle, K. Lieberherr, and A. Shah. XAspects: An extensible system for domain specific aspect languages. In Companion to the 18th Annual Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 28--37, Anaheim, California, 2003. ACM Press.
[37]
É. Tanter and J. Noyé. A versatile kernel for multi-language AOP. In Proceedings of the 4th International Conference on Generative Programming and Component Engineering (GPCE'05), number 3676 in Lecture Notes in Computer Science, pages 173--188, Tallin, Estonia, Sept. 29--Oct. 1 2005. Springer Verlag.
[38]
P. L. Tarr, H. L. Ossher, W. H. Harrison, and S. M. Sutton, Jr. N degrees of separation: Multi-dimentional separation of concerns. In ICSE'99 {18}, pages 107--119.
[39]
D. Walker, S. Zdancewic, and J. Ligatti. A theory of aspects. In Proceedings of the 7th ACM SIGPLAN International Conference on Functional Programming, pages 127--139, Uppsala, Sweden, Aug. 2003. ACM Press.
[40]
R. J. Walker, E. L. A. Baniassad, and G. Murphy. Assessing Aspect-Oriented programming and design. In S. Demeyer and J. Bosch, editors, Object-Oriented Technology, ECOOP'98 Workshop Reader, number 1543 in Lecture Notes in Computer Science, pages 433--434, Brussels, Belgium, July 1998. Proceedings of the ECOOP'98 Workshops, Demos, and Posters, Springer Verlag.
[41]
R. J. Walker, E. L. A. Baniassad, and G. C. Murphy. An initial assessment of Aspect-Oriented programming. In ICSE'99 {18}, pages 120--130.
[42]
M. Wand, G. Kiczales, and C. Dutchyn. A semantics for advice and dynamic join points in aspect-oriented programming. ACM Trans. Prog. Lang. Syst., 26(5):890--910, Sept. 2004

Cited By

View all

Index Terms

  1. Awesome: an aspect co-weaving system for composing multiple aspect-oriented extensions

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 42, Issue 10
    Proceedings of the 2007 OOPSLA conference
    October 2007
    686 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1297105
    Issue’s Table of Contents
    • cover image ACM Conferences
      OOPSLA '07: Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems, languages and applications
      October 2007
      728 pages
      ISBN:9781595937865
      DOI:10.1145/1297027
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 21 October 2007
    Published in SIGPLAN Volume 42, Issue 10

    Check for updates

    Author Tags

    1. AOP
    2. DSL
    3. aspect extension
    4. aspect mechanism
    5. aspect weaver
    6. composition
    7. framework
    8. pluggability

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 08 Mar 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2021)A Multi-engine Aspect-Oriented Language with Modeling Integration for Video Game DesignEvaluation of Novel Approaches to Software Engineering10.1007/978-3-030-70006-5_14(336-359)Online publication date: 27-Feb-2021
    • (2019)GAMESPECT: Aspect Oriented Programming for a Video Game Engine using Meta-languages2019 SoutheastCon10.1109/SoutheastCon42311.2019.9020369(1-8)Online publication date: Apr-2019
    • (2012)First-Class compositionsTransactions on Aspect-Oriented Software Development IX10.5555/2434958.2434967(216-267)Online publication date: 1-Jan-2012
    • (2012)First-Class CompositionsTransactions on Aspect-Oriented Software Development IX10.1007/978-3-642-35551-6_6(216-267)Online publication date: 2012
    • (2010)A model for composable composition operatorsProceedings of the 9th International Conference on Aspect-Oriented Software Development10.1145/1739230.1739248(145-156)Online publication date: 15-Mar-2010
    • (2008)Prototyping and Composing Aspect LanguagesProceedings of the 22nd European conference on Object-Oriented Programming10.1007/978-3-540-70592-5_9(180-206)Online publication date: 7-Jul-2008
    • (2016)Application-specific language-oriented modularity: a case study of the ovirt projectCompanion Proceedings of the 15th International Conference on Modularity10.1145/2892664.2892692(178-183)Online publication date: 14-Mar-2016
    • (2016)Toward practical language oriented modularityCompanion Proceedings of the 15th International Conference on Modularity10.1145/2892664.2892678(94-98)Online publication date: 14-Mar-2016
    • (2015)A language workbench for implementing your favorite extension to AspectJCompanion Proceedings of the 14th International Conference on Modularity10.1145/2735386.2735924(19-20)Online publication date: 16-Mar-2015
    • (2015)Demanding first-class equality for domain specific aspect languagesCompanion Proceedings of the 14th International Conference on Modularity10.1145/2735386.2735388(35-38)Online publication date: 16-Mar-2015
    • Show More Cited By

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media