skip to main content
10.1145/1111542.1111554acmconferencesArticle/Chapter ViewAbstractPublication PagespepmConference Proceedingsconference-collections
Article

A disciplined approach to aspect composition

Published:09 January 2006Publication History

ABSTRACT

Aspect-oriented programming is a promising paradigm that challenges traditional notions of program modularity. Despite its increasing acceptance, aspects have been documented to suffer limited reuse, hard to predict behavior, and difficult modular reasoning. We develop an algebraic model that relates aspects to program transformations and uncovers aspect composition as a significant source of the problems mentioned. We propose an alternative model of composition that eliminates these problems, preserves the power of aspects, and lays an algebraic foundation on which to build and understand AOP tools.

References

  1. J. Aldrich. Open Modules: Modular Reasoning about Advice. ECOOP 2005.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. D. Ancona, G. Lagorio, and E. Zucca, "True Separate Compilation of Java Classes", PPDP 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. AOSD Europe Network of Excellence Workshop. ECOOP 2005.]]Google ScholarGoogle Scholar
  4. AspectJ Developers mailing list. dev. eclipse. org/mho-narc/lists/aspectj-dev/maillist.html. Thread on execution order. October 5, 2005.]]Google ScholarGoogle Scholar
  5. P. Avgustinov, et al., "abc: An Extensible AspectJ Compiler", AOSD 2005, Chicago, USA.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. P. Avgustinov, et al. "Optimizing AspectJ", PLDI 2005.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. AspectJ, version 1.2.1, eclipse.org/aspectj/.]]Google ScholarGoogle Scholar
  8. AspectJ Manual, www.eclipse.org/aspectj/doc/progguide/language.html.]]Google ScholarGoogle Scholar
  9. Aspect Bench Compiler. www. aspectbench. org]]Google ScholarGoogle Scholar
  10. D. Batory and S. O'Malley. "The Design and Implementation of Hierarchical Software Systems with Reusable Components", ACM TOSEM, October 1992.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. D. Batory, J. N. Sarvela, A. Rauschmayer, "Scaling Step-Wise Refinement", IEEE TSE, June 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. J. Bezivin, "From Object Composition to Model Transformation with the MDA", TOOLS'USA, August 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. L. Cardelli, "Program Fragments, Linking, and Modularization", POPL 97.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. S. Chiba, "Program Transformation with Reflective and Aspect-Oriented Programming", in {13}.]]Google ScholarGoogle Scholar
  15. C. Clifton and G. Leavens, "Observers and Assistants: A Proposal for Modular Aspect-Oriented Reasoning", FOAL 2002.]]Google ScholarGoogle Scholar
  16. C. Clifton, G. T. Leavens. "Obliviousness, Modular Reasoning, and the Behavioral Subtyping Analogy". SPLAT 2003.]]Google ScholarGoogle Scholar
  17. C. Clifton, "A Design Discipline and Language Features for Modular Reasoning in Aspect-Oriented Programs", Ph.D. Dept. Computer Science, Iowa State, 2005.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. E. W. Dijkstra. "The Structure of the 'THE'-Multiprogramming System", CACM, May 1968.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. R. Dounce, D. Le Botlan. "Towards a Taxonomy of AOP Semantics". AOSD-Europe. Technical Report, July 2005.]]Google ScholarGoogle Scholar
  20. R. E. Filman, T. Elrad, S. Clarke, M. Aksit. Aspect-Oriented Software Development. Addison-Wesley, 2004.]]Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. J. Gray et al. "A Technique for Constructing Aspect Weavers Using a Program Transformation Engine". AOSD 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. K. Gybels and J. Brichau, "Arranging Language Features for More Robust Pattern-based crosscuts", AOSD 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. K Gybels and K. Ostermann, Discussions at SPLAT 2005.]]Google ScholarGoogle Scholar
  24. E. Hilsdale and J. Hugunin. "Advice weaving in AspectJ". AOSD 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. D. Hutchins, "Making Inheritance Scale: Towards a Theory of Deep Mixin Composition", Univ. of Edinburgh, 2005.]]Google ScholarGoogle Scholar
  26. G. Kiczales, M. Mezini. "Aspect-Oriented Programming and Modular Reasoning". 1CSE 2005.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. G. Kniesel, et al. "JMangler - A Framework for Load-Time Transformation of Java Class Files". SCAM 2001.]]Google ScholarGoogle Scholar
  28. S. Krishnamurthi, K. Fisler, M. Greenberg. "Verifying Aspect Advice Modularity". FSE 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. R. Laddad. AspectJ in Action. Practical Aspect-Oriented Programming. Manning, 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. R. Lämmel, "Declarative Aspect-Oriented Programming", PEPM 1999.]]Google ScholarGoogle Scholar
  31. R. Lämmel, J. Saraiva, and J. Visser (Eds), Generative and Transformational Techniques in Software Engineering, 2005.]]Google ScholarGoogle Scholar
  32. R. E. Lopez-Herrejon, et al. "Evaluating Support for Features in Advanced Modularization Techniques". ECOOP 2005.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. R. E. Lopez-Herrejon and D. Batory. "Improving Incremental Development in AspectJ by Bounding Quantification", SPLAT Workshop, March 2005.]]Google ScholarGoogle Scholar
  34. H. Masuhara, G. Kiczales, "Modeling Crosscutting Aspect-Oriented Mechanisms". ECOOP 2003.]]Google ScholarGoogle Scholar
  35. M. McEachen, R. T. Alexander. "Distributing Classes with Woven Concerns - An Exploration of Potential Fault Scenarios". AOSD 2005.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Partsch, H., Steinbrüggen, R.: Program Transformation Systems. ACM Computing Surveys, September (1983).]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. H. Rajan, K. J. Sullivan, "Classpects: Unifying Aspect- and Object-Oriented Programming", ICSE 2005.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. M. Rinard. A. Salcianu, S. Bugrara. "A Classification System and Analysis for Aspect-Oriented Programs", FSE 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. T. Rho, G. Kniesel. "LogicAJ - A Uniformly Generic Aspect Language." Submitted.]]Google ScholarGoogle Scholar
  40. P. Selinger, et al, "Access Path Selection in a Relational Data-base System", ACM SIGMOD 1979, 23--34.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Semantic Designs. www. semdesigns.com/]]Google ScholarGoogle Scholar
  42. P. Tarr, H. Ossher, et al., "N Degrees of Separation: Multi-Dimensional Separation of Concerns", ICSE 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. L. Tokuda and D. Batory. "Evolving Object-Oriented Designs with Refactorings" J. Automated Soft. Engr. 8, 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. C. Szyperski, Component Software: Beyond Object-Oriented Programming, Addison-Wesley, 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. M. Wand, et al., "A Semantics for Advice and Dynamic Join Points in Aspect Oriented Programming", TOPLAS 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. N. Wirth, "Program Development by Stepwise Refinement", CACM 14 #4, 221--227, 1971.]] Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A disciplined approach to aspect composition

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          PEPM '06: Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
          January 2006
          176 pages
          ISBN:1595931961
          DOI:10.1145/1111542

          Copyright © 2006 ACM

          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: 9 January 2006

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • Article

          Acceptance Rates

          Overall Acceptance Rate66of120submissions,55%

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader