|Home \ Prototypes \ Prototype Page||Login|
Aspect-Oriented Infrastructure for Design by Contract in Java
Aspect-Oriented Infrastructure for Design by Contract in Java: Library Design and Implementation The main goal of this prototype is to support the Design by Contract approach in Java applications with the following functional and non-functional requirements: 1.The prototype should be in the form of a library, and should be simple to use by an “average” Java programmer, that is, one which is not familiar with AspectJ or AOP in general. 2.The library should support the core features present in the Eiffel language: preconditions, postconditions, class invariants, contract inheritance, and the “result” and “old” special variables. 3.The contracts are to be written in standard Java code, although the library is implemented in an aspect-oriented language. 4.The library should be pluggable, meaning that an application written with the library should compile in the absence of the library, and display the same functional behaviour. 5.Finally, a mechanism for restraining contract verification should be available, with some of level of granularity, in terms of modules and/or assertion types. The Library Design and Implementation was implemented using the Design by Contract for Java (DbC4J). The prototype was implemented in the Eclipse IDE 3.2 on top of Java JDK 1.5, using the AspectJ Development Tools (AJDT) 1.5 plug-in.
Date: June, 2008
Authors: Ana Moreira, Pedro Guerreiro