Barter is a tool for implementing design by contract in Java, using AspectJ. It generates aspect code from JavaDoc comments (similar syntax as in iContract), hiding the complexity of the AspectJ notation.
I'm interested in feedback from the LtU community, especially in the following:
- how can one express proper precondition inheritance in AspectJ?
- the intention is to go beyond conventional design by contract, since AspectJ allows you to express much more interesting concepts about the usage of a class (eg. where and how the developer is supposed to use it, or you can keep a statemachine for assertions, etc). what interesting usage patterns can you envision?
Barter is available at http://barter.sourceforge.net/
|