Contracts for aspect-oriented design

The Java approach to Object-Oriented Design by Contract can be extended and applied to Aspect-Oriented Software. For doing so, we need to address how current Object-Oriented Design by Contract can be modified to tackle aspect advising, as well as to actually extend the Design by Contract approach for aspect modules. Our approach is general enough to be applied to Java Aspect-Oriented extensions such as AspectJ, CaesarJ, and FuseJ.

[1]  Mohamed G. Gouda,et al.  Adaptive Programming , 1991, IEEE Trans. Software Eng..

[2]  Yuanyuan Song,et al.  Modular software design with crosscutting interfaces , 2006, IEEE Software.

[3]  Dean Wampler,et al.  Aspect-Oriented Design Principles : Lessons from Object-Oriented Design , 2007 .

[4]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

[5]  João Araújo,et al.  aspect- oriented pr ogramming , 2006 .

[6]  Elke Pulvermüller,et al.  Aspect Composition Applying the Design by Contract Principle , 2000, GCSE.

[7]  Jonathan Aldrich,et al.  Open Modules: Modular Reasoning About Advice , 2005, ECOOP.

[8]  Murat Karaorman,et al.  jContractor: Introducing Design-by-Contract to Java Using Reflective Bytecode Instrumentation , 2005, Formal Methods Syst. Des..

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

[10]  Wim Vanderperren,et al.  A Symmetric and Unified Approach Towards Combining Aspect-Oriented and Component-Based Software Development , 2006, CBSE.

[11]  Andrew Duncan,et al.  Adding Contracts to Java with Handshake , 1998 .

[12]  Michael D. Ernst,et al.  An overview of JML tools and applications , 2003, Electron. Notes Theor. Comput. Sci..

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

[14]  David H. Lorenz,et al.  Extending Design by Contract for Aspect-Oriented Programming , 2005, ArXiv.

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

[16]  Harold Ossher,et al.  Subject-oriented programming: a critique of pure objects , 1993, OOPSLA '93.

[17]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

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

[19]  Mira Mezini,et al.  An Overview of CaesarJ , 2006, LNCS Trans. Aspect Oriented Softw. Dev..

[20]  Bertrand Meyer,et al.  Object-Oriented Software Construction, 2nd Edition , 1997 .

[21]  Stefan Hanenberg,et al.  Modeling Pointcuts , 2004 .

[22]  Matthias Felleisen,et al.  Contract Soundness for object-oriented languages , 2001, OOPSLA '01.

[23]  C. A. R. HOARE,et al.  An axiomatic basis for computer programming , 1969, CACM.

[24]  Patrick Th. Eugster,et al.  Can Aspects Implement Contracts? , 2005, RISE.

[25]  Lodewijk Bergmans,et al.  Proceedings of the Fifth Workshop on Software Engineering Properties of Languages and Aspect Technologies (SPLAT 2007) : held at the Sixth International Conference on Aspect-Oriented Software Development, March 12-16, Vancouver, British Columbia, Canada , 2007 .

[26]  William R. Cook,et al.  Mixin-based inheritance , 1990, OOPSLA/ECOOP '90.

[27]  R. Kramer iContract - The Java(tm) Design by Contract(tm) Tool , 1998 .

[28]  David Walker,et al.  Harmless advice , 2006, POPL '06.

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

[30]  Günter Kniesel,et al.  A Meta Model for AspectJ , 2004 .

[31]  Guy L. Steele,et al.  Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley)) , 2005 .

[32]  Matthias Felleisen,et al.  Behavioral contracts and behavioral subtyping , 2001, ESEC/FSE-9.

[33]  Matthew Alexander Webster,et al.  Eclipse AspectJ: Aspect-Oriented Programming with AspectJ and the Eclipse AspectJ Development Tools , 2004 .

[34]  Awais Rashid,et al.  Domain models are NOT aspect free , 2006, MoDELS'06.

[35]  Dean Wampler,et al.  Contract4J for Design by Contract in Java: Design Pattern-Like Protocols and Aspect Interfaces , 2006 .

[36]  João Araújo,et al.  Modularisation and composition of aspectual requirements , 2003, AOSD '03.

[37]  Jeannette M. Wing,et al.  Family Values: A Behavioral Notion of Subtyping , 1993 .

[38]  Martin Lackner,et al.  Supporting Design by Contract in Java , 2002, J. Object Technol..