5 CONCLUSION
Although Sun Microsystems added some support for assertions with the introduction of the Java Assertion Facility in Java 1.4, the support available is not sufficient to formulate preconditions, postconditions and invariants in a contract style. Most available third party products allow to formulate common preconditions, postconditions and invariants, some of them offer additional support for dealing with collections. Systems, implementing assertion support based on preprocessing have the major advantage, that the Java source code can be compiled with a standard Java compiler and that in every system any runtime penalties can be omitted when assertion checking is disabled. ContractJava and Jass are
Conclusion
VOL. 1, NO. 3 JOURNAL OF OBJECT TECHNOLOGY 15
interesting because of their special support for ensure behavioral subtyping (ContractJava) and for the additional support for trace assertions and change lists (Jass). For companies interested in applying assertion techniques in everday projects, Jcontract seems to be a suitable choice at present, as it sufficiently supports precondtions, postconditions and invariants and additionally provides tool support for automatically generating test cases from assertion specifications.