Using B to Verify the Weaving of Aspects

Aspect J is an aspect-oriented extension of the Java language that enables a modular implementation of crosscutting concerns. Despite this, aspects lack support for formal specification and verification. This paper expresses the base class and some related aspects of Aspect J model in B notation. It aims to benefit from proof obligations generated by B tools to ensure the correctness of Aspect J component composition. Static crosscuts of aspects are guaranteed by proof obligations of relation clauses between B abstract machines and dynamic crosscuts are proved by proof obligations of B refinement machines. This approach is illustrated by verifying a simple example.

[1]  Jean-Raymond Abrial,et al.  The B-book - assigning programs to meanings , 1996 .

[2]  Naoyasu Ubayashi,et al.  Aspect-oriented programming with model checking , 2002, AOSD '02.

[3]  Fabrice Bouquet,et al.  Checking JML Specifications with B Machines , 2005, ZB.

[4]  Frank Waters,et al.  The B Book , 1971 .

[5]  Ludovic Casset Development of an Embedded Verifier for Java Card Byte Code Using Formal Methods , 2002, FME.

[6]  Jeanine Souquières,et al.  An approach for the verification of UML models using B , 2004, Proceedings. 11th IEEE International Conference and Workshop on the Engineering of Computer-Based Systems, 2004..

[7]  Sylvain Boulmé,et al.  Adaptable Translator of B Specifications to Embedded C Programs , 2003, FME.

[8]  Takuya Katayama,et al.  Future Software Development with Components and Modular Verification , 2006 .

[9]  Alexander Malioukov,et al.  An Object-Based Approach to the B Formal Method , 1998, B.

[10]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[11]  Didier Bert B’98: Recent Advances in the Development and Use of the B Method , 1998, Lecture Notes in Computer Science.

[12]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[13]  Jonathan P. Bowen,et al.  Applications of Formal Methods , 1995 .

[14]  Volker Stolz,et al.  Temporal Assertions using AspectJ , 2006, Electron. Notes Theor. Comput. Sci..

[15]  Paul Benoit,et al.  Météor: A Successful Application of B in a Large Project , 1999, World Congress on Formal Methods.

[16]  Dominique Cansell,et al.  Click'n Prove: Interactive Proofs within Set Theory , 2003, TPHOLs.

[17]  Stephan Merz,et al.  Model Checking , 2000 .

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

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

[20]  Albert L. Baker,et al.  Preliminary design of JML: a behavioral interface specification language for java , 2006, SOEN.