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.
- J. Aldrich. Open Modules: Modular Reasoning about Advice. ECOOP 2005.]] Google ScholarDigital Library
- D. Ancona, G. Lagorio, and E. Zucca, "True Separate Compilation of Java Classes", PPDP 2002.]] Google ScholarDigital Library
- AOSD Europe Network of Excellence Workshop. ECOOP 2005.]]Google Scholar
- AspectJ Developers mailing list. dev. eclipse. org/mho-narc/lists/aspectj-dev/maillist.html. Thread on execution order. October 5, 2005.]]Google Scholar
- P. Avgustinov, et al., "abc: An Extensible AspectJ Compiler", AOSD 2005, Chicago, USA.]] Google ScholarDigital Library
- P. Avgustinov, et al. "Optimizing AspectJ", PLDI 2005.]] Google ScholarDigital Library
- AspectJ, version 1.2.1, eclipse.org/aspectj/.]]Google Scholar
- AspectJ Manual, www.eclipse.org/aspectj/doc/progguide/language.html.]]Google Scholar
- Aspect Bench Compiler. www. aspectbench. org]]Google Scholar
- D. Batory and S. O'Malley. "The Design and Implementation of Hierarchical Software Systems with Reusable Components", ACM TOSEM, October 1992.]] Google ScholarDigital Library
- D. Batory, J. N. Sarvela, A. Rauschmayer, "Scaling Step-Wise Refinement", IEEE TSE, June 2004.]] Google ScholarDigital Library
- J. Bezivin, "From Object Composition to Model Transformation with the MDA", TOOLS'USA, August 2001.]] Google ScholarDigital Library
- L. Cardelli, "Program Fragments, Linking, and Modularization", POPL 97.]] Google ScholarDigital Library
- S. Chiba, "Program Transformation with Reflective and Aspect-Oriented Programming", in {13}.]]Google Scholar
- C. Clifton and G. Leavens, "Observers and Assistants: A Proposal for Modular Aspect-Oriented Reasoning", FOAL 2002.]]Google Scholar
- C. Clifton, G. T. Leavens. "Obliviousness, Modular Reasoning, and the Behavioral Subtyping Analogy". SPLAT 2003.]]Google Scholar
- C. Clifton, "A Design Discipline and Language Features for Modular Reasoning in Aspect-Oriented Programs", Ph.D. Dept. Computer Science, Iowa State, 2005.]] Google ScholarDigital Library
- E. W. Dijkstra. "The Structure of the 'THE'-Multiprogramming System", CACM, May 1968.]] Google ScholarDigital Library
- R. Dounce, D. Le Botlan. "Towards a Taxonomy of AOP Semantics". AOSD-Europe. Technical Report, July 2005.]]Google Scholar
- R. E. Filman, T. Elrad, S. Clarke, M. Aksit. Aspect-Oriented Software Development. Addison-Wesley, 2004.]]Google ScholarDigital Library
- J. Gray et al. "A Technique for Constructing Aspect Weavers Using a Program Transformation Engine". AOSD 2004.]] Google ScholarDigital Library
- K. Gybels and J. Brichau, "Arranging Language Features for More Robust Pattern-based crosscuts", AOSD 2003.]] Google ScholarDigital Library
- K Gybels and K. Ostermann, Discussions at SPLAT 2005.]]Google Scholar
- E. Hilsdale and J. Hugunin. "Advice weaving in AspectJ". AOSD 2004.]] Google ScholarDigital Library
- D. Hutchins, "Making Inheritance Scale: Towards a Theory of Deep Mixin Composition", Univ. of Edinburgh, 2005.]]Google Scholar
- G. Kiczales, M. Mezini. "Aspect-Oriented Programming and Modular Reasoning". 1CSE 2005.]] Google ScholarDigital Library
- G. Kniesel, et al. "JMangler - A Framework for Load-Time Transformation of Java Class Files". SCAM 2001.]]Google Scholar
- S. Krishnamurthi, K. Fisler, M. Greenberg. "Verifying Aspect Advice Modularity". FSE 2004.]] Google ScholarDigital Library
- R. Laddad. AspectJ in Action. Practical Aspect-Oriented Programming. Manning, 2003.]] Google ScholarDigital Library
- R. Lämmel, "Declarative Aspect-Oriented Programming", PEPM 1999.]]Google Scholar
- R. Lämmel, J. Saraiva, and J. Visser (Eds), Generative and Transformational Techniques in Software Engineering, 2005.]]Google Scholar
- R. E. Lopez-Herrejon, et al. "Evaluating Support for Features in Advanced Modularization Techniques". ECOOP 2005.]] Google ScholarDigital Library
- R. E. Lopez-Herrejon and D. Batory. "Improving Incremental Development in AspectJ by Bounding Quantification", SPLAT Workshop, March 2005.]]Google Scholar
- H. Masuhara, G. Kiczales, "Modeling Crosscutting Aspect-Oriented Mechanisms". ECOOP 2003.]]Google Scholar
- M. McEachen, R. T. Alexander. "Distributing Classes with Woven Concerns - An Exploration of Potential Fault Scenarios". AOSD 2005.]] Google ScholarDigital Library
- Partsch, H., Steinbrüggen, R.: Program Transformation Systems. ACM Computing Surveys, September (1983).]] Google ScholarDigital Library
- H. Rajan, K. J. Sullivan, "Classpects: Unifying Aspect- and Object-Oriented Programming", ICSE 2005.]] Google ScholarDigital Library
- M. Rinard. A. Salcianu, S. Bugrara. "A Classification System and Analysis for Aspect-Oriented Programs", FSE 2004.]] Google ScholarDigital Library
- T. Rho, G. Kniesel. "LogicAJ - A Uniformly Generic Aspect Language." Submitted.]]Google Scholar
- P. Selinger, et al, "Access Path Selection in a Relational Data-base System", ACM SIGMOD 1979, 23--34.]] Google ScholarDigital Library
- Semantic Designs. www. semdesigns.com/]]Google Scholar
- P. Tarr, H. Ossher, et al., "N Degrees of Separation: Multi-Dimensional Separation of Concerns", ICSE 1999.]] Google ScholarDigital Library
- L. Tokuda and D. Batory. "Evolving Object-Oriented Designs with Refactorings" J. Automated Soft. Engr. 8, 2001.]] Google ScholarDigital Library
- C. Szyperski, Component Software: Beyond Object-Oriented Programming, Addison-Wesley, 2002.]] Google ScholarDigital Library
- M. Wand, et al., "A Semantics for Advice and Dynamic Join Points in Aspect Oriented Programming", TOPLAS 2004.]] Google ScholarDigital Library
- N. Wirth, "Program Development by Stepwise Refinement", CACM 14 #4, 221--227, 1971.]] Google ScholarDigital Library
Index Terms
- A disciplined approach to aspect composition
Recommendations
A Classification of Aspect Composition Problems
SSIRI '09: Proceedings of the 2009 Third IEEE International Conference on Secure Software Integration and Reliability ImprovementAspect-Oriented Programming (AOP) builds on the success of Object-Oriented Programming (OOP) for separation of crosscutting concerns. However, composition of aspects with a system’s base program and composition of aspects do not necessarily yield the ...
Disciplined composition of aspects using tests
LATE '08: Proceedings of the 2008 AOSD workshop on Linking aspect technology and evolutionA large part of the software development effort is typically spent on maintenance and evolution, namely on adding new and unanticipated features. As aspect-oriented programming (AOP) can be easily used to compose software in non-planned ways, many ...
Securing aspect composition
SAC '08: Proceedings of the 2008 ACM symposium on Applied computingAlthough research in AOP is increasing in maturity there remain many unresolved issues. While current AOP languages offer ever-increasing levels of flexibility, they still fail to offer a sufficient discipline of application to ensure that advanced AOP ...
Comments