Reasoning about the behavior of aspect-oriented programs

Aspect-oriented programming (AOP) has become increasingly popular over the last few years. At the same time, reasoning about the behavior of these programs poses serious challenges. In this paper, we present a rely-guarantee- approach to such reasoning. The rely-guarantee approach has proven useful in reasoning about concurrent and distributed programs. We show that some of the key problems encountered in reasoning about aspect-oriented programs are similar to those encountered in reasoning about concurrent programs; and that the rely-guarantee approach, appropriately modified, helps address these problems. We illustrate our approach with a simple example.

[1]  Cliff B. Jones,et al.  Tentative steps toward a development method for interfering programs , 1983, TOPL.

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

[3]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

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

[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]  David Walker,et al.  Harmless advice , 2006, POPL '06.

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

[8]  G. Kiczales,et al.  Aspect-oriented programming and modular reasoning , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[9]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[10]  Masaaki Mizuno,et al.  SyncGen: An Aspect-Oriented Framework for Synchronization , 2004, TACAS.

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

[12]  Ramnivas Laddad,et al.  Aspectj in Action: Practical Aspect-Oriented Programming , 2003 .

[13]  Neelam Soundarajan,et al.  Rely-guarantee approach to reasoning about aspect-oriented programs , 2007, SPLAT.

[14]  Tzilla Elrad,et al.  Aspect-oriented programming: Introduction , 2001, CACM.

[15]  Willem P. de Roever,et al.  The rely-guarantee method for verifying shared variable concurrent programs , 1997, Formal Aspects of Computing.