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/