An Aspect-Oriented Approach to Modular Behavioral Specification

Abstract Behavioral interface specification languages, such as Java Modeling Language (JML), can be used to specify the behavior of program modules. We have developed a behavioral interface specification language Moxa, an extension of JML. Moxa provides a new modularization mechanism called assertion aspect that can capture the crosscutting properties among assertions. In this paper, we briefly explain the notion of assertion aspects and the design of Moxa, and then we show an example specification. By comparing the specification to its JML counterpart, we show that the use of assertion aspects clarifies the large, complex specification and greatly simplifies each assertion in the specification.

[1]  Shigeki Hagihara,et al.  AnZenMail: A Secure and Certified E-mail System , 2002, ISSS.

[2]  Bertrand Meyer,et al.  Applying 'design by contract' , 1992, Computer.

[3]  Albert L. Baker,et al.  JML: A Notation for Detailed Design , 1999, Behavioral Specifications of Businesses and Systems.

[4]  Cristina V. Lopes,et al.  Aspect-Oriented Programming , 1997, ECOOP.

[5]  Cristina V. Lopes,et al.  A study on exception detection and handling using aspect-oriented programming , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[6]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[7]  Jeffrey G. Gray,et al.  A model-driven approach to enforce crosscutting assertion checking , 2005, ACM SIGSOFT Softw. Eng. Notes.

[8]  Filippo Diotalevi Contract enforcement with AOP: Apply design by contract to Java software development with AspectJ , 2004 .

[9]  Shinji Kusumoto,et al.  Aspect-oriented modularization of assertion crosscutting objects , 2005, 12th Asia-Pacific Software Engineering Conference (APSEC'05).

[10]  Jing Zhang,et al.  A model-driven approach to enforce crosscutting assertion checking , 2005, MACS@ICSE.

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

[12]  Jeannette M. Wing,et al.  A behavioral notion of subtyping , 1994, TOPL.

[13]  Shinji Kusumoto,et al.  Assertion with Aspect , 2004 .

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

[15]  MeyerBertrand,et al.  Design by Contract , 1997 .