User Queries for Specification Refinement Treating Shared Aspect Join Points

We present an interactive semi-automatic procedure to help users refine their requirements formally and precisely, using knowledge the user possesses but does not notice as relevant and has difficulty formalizing. Questions in natural language are presented to the user, and augmentations to specifications, written in Linear Temporal Logic, are automatically created according to the answers. We apply our approach to a case study on specifying the desired aspect behavior in a delicate case when multiple aspects can share a join-point, i.e., be applied at the same state of base program computation. The questions used in the case study are derived from an in-depth analysis of semantics and mutual influence of aspects at a shared join-point. Aspects sharing a join-point might, but do not have to, semantically interfere. Our analysis and specification refinement enables programmers to distinguish between potential and actual interference among aspects at shared join-points, when aspects are modeled as state transition diagrams, and specifications are given as LTL assumptions and guarantees. The refined aspect specification, obtained from the procedure we describe, enables modular verification and interference detection among aspects even in the presence of shared join-points.

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

[2]  Awais Rashid,et al.  Interaction analysis for fault-tolerance in aspect-oriented programming , 2007 .

[3]  Thomas Ledoux,et al.  Aspect-Oriented Software Development , 2003 .

[4]  Fausto Giunchiglia,et al.  NUSMV: A New Symbolic Model Verifier , 1999, CAV.

[5]  Arend Rensink,et al.  A graph-transformation-based simulation approach for analysing aspect interference on shared join points , 2009, AOSD '09.

[6]  Rémi Douence,et al.  Aspects preserving properties , 2008, PEPM '08.

[7]  Shmuel Katz,et al.  Incremental analysis of interference among aspects , 2008, FOAL.

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

[9]  Shmuel Katz,et al.  Modular Verification of Strongly Invasive Aspects , 2009, Languages: From Formal to Natural.

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

[11]  Mehmet Aksit,et al.  Reasoning About Semantic Conflicts Between Aspects , 2005 .

[12]  Günter Kniesel,et al.  Detection and Resolution of Weaving Interactions , 2009, LNCS Trans. Aspect Oriented Softw. Dev..

[13]  Rémi Douence,et al.  A Framework for the Detection and Resolution of Aspect Interactions , 2002, GPCE.

[14]  Gary T. Leavens,et al.  MiniMAO1: Investigating the Semantics of Proceed , 2005 .

[15]  Gary T. Leavens,et al.  MiniMAO: An imperative core language for studying aspect-oriented reasoning , 2006, Sci. Comput. Program..

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

[17]  Shmuel Katz,et al.  MAVEN: Modular Aspect Verification , 2007, TACAS.

[18]  Gregor Kiczales,et al.  A semantics for advice and dynamic join points in aspect-oriented programming , 2001, TOPL.

[19]  Lodewijk Bergmans,et al.  Composing Aspects at Shared Join Points , 2005, NODe/GSEM.

[20]  Shmuel Katz,et al.  Semantic Aspect Interactions and Possibly Shared Join Points , 2010 .

[21]  Mario Südholt,et al.  VPA-Based Aspects: Better Support for AOP over Protocols , 2006, Fourth IEEE International Conference on Software Engineering and Formal Methods (SEFM'06).