An Analysis of the Correctness and Completeness of Aspect Weaving

Jointly deployed aspects may interact with each other. While some interactions might be intended, unintended interactions (interferences) can break a program. Detecting and resolving interferences is particularly hard if aspects are developed independently, without knowledge of each other. Work on interference detection has focused so far on the correctness of weaved programs. In this paper we focus on the correctness and completeness of aspect weaving. We show that a large class of interferences result from incorrect or incomplete weaving and present a language independent correctness, and completeness. Our technique can check aspect interferences independent of any base program and is applicable to aspects that contain implicit mutual dependencies in their implementation, without needing special purpose program annotations or formal specifications of aspect semantics

[1]  Lodewijk Bergmans,et al.  Declarative Aspect Composition , 2004 .

[2]  Maximilian Stoerzer Analysis of AspectJ Programs , 2003 .

[3]  Mehmet Aksit,et al.  Composition Graphs: a Foundation for Reasoning about Aspect-Oriented Composition , 2003 .

[4]  David H. Lorenz,et al.  Aspect Instances and their Interactions , 2003 .

[5]  Shmuel Katz,et al.  A calculus of superimpositions for distributed systems , 2002, AOSD '02.

[6]  Gabriele Taentzer,et al.  AGG: A Graph Transformation Environment for Modeling and Validation of Software , 2003, AGTIVE.

[7]  Klaus Ostermann,et al.  Independent Extensibility – an open challenge for AspectJ and Hyper/J , 2000 .

[8]  Gary T. Leavens,et al.  Observers and Assistants: A Proposal for Modular Aspect-Oriented Reasoning , 2002 .

[9]  Christian Prehofer Feature Interactions in Statechart Diagrams or Graphical Composition of Components , 2002 .

[10]  Lodewijk Bergmans,et al.  An Object-Oriented Language-Database Integration Model: The Composition-Filters Approach , 1992, ECOOP.

[11]  Günter Kniesel,et al.  JMangler - a framework for load-time transformation of Java class files , 2001, Proceedings First IEEE International Workshop on Source Code Analysis and Manipulation.

[12]  Mehmet Aksit,et al.  Principles and Design Rationale of Composition Filters , 2004 .

[13]  Rémi Douence,et al.  Composition, reuse and interaction analysis of stateful aspects , 2004, AOSD '04.

[14]  Gary T. Leavens,et al.  Obliviousness, Modular Reasoning, and the Behavioral Subtyping Analogy , 2003 .

[15]  Renaud Pawlak,et al.  Spoon: Program Analysis and Transformation in Java , 2006 .

[16]  Günter Kniesel,et al.  JMangler – A Powerful Back-End for Aspect-Oriented Programming , 2003 .

[17]  Harold Ossher,et al.  Using multidimensional separation of concerns to (re)shape evolving software , 2001, CACM.

[18]  Lodewijk Bergmans,et al.  Composing crosscutting concerns using composition filters , 2001, CACM.

[19]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[20]  William G. Griswold,et al.  Getting started with ASPECTJ , 2001, CACM.

[21]  Marcelo Sihman,et al.  Model Checking Applications of Aspects and Superimpositions , 2003 .

[22]  Jens Krinke,et al.  Interference Analysis for AspectJ , 2003 .

[23]  Lodewijk Bergmans Towards Detection of Semantic Conflicts between Crosscutting Concerns , 2003 .

[24]  Roger T. Alexander,et al.  Distributing classes with woven concerns: an exploration of potential fault scenarios , 2005, AOSD '05.

[25]  Jens Krinke,et al.  Trace Analysis for Aspect Application , 2003 .

[26]  Jörg Kienzle,et al.  On Composition and Reuse of Aspects , 2003 .

[27]  Stefan Hanenberg,et al.  Morphing aspects: incompletely woven aspects and continuous weaving , 2004, AOSD '04.

[28]  Detlef Vollmann Visibility of Join-Points in AOP and Implementation Languages , 2002 .

[29]  Tom Mens,et al.  Transformation dependency analysis - a comparison of two approaches , 2006, LMO.

[30]  Kathi Fisler,et al.  Verifying aspect advice modularly , 2004, SIGSOFT '04/FSE-12.

[31]  Jianjun Zhao,et al.  Pipa: A Behavioral Interface Specification Language for AspectJ , 2003, FASE.

[32]  Rémi Douence,et al.  Detection and resolution of aspect interactions , 2002 .

[33]  Mattia Monga,et al.  Reasoning on AspectJ Programmes , 2003 .

[34]  Daniel P. Friedman,et al.  Aspect-Oriented Programming is Quantification and Obliviousness , 2000 .