Lecture 14: Practical tools for Java Correctness

Practical tools for Java Correctness. We looked at JML, a language for writing assertions in a model-oriented specification style. JML comes with the tools jmlc and jmlunit. We looked at the tool ESC/Java2, which can also use JML annotations. We discussed the common lack of completeness and soundness for tools like this: leading to missed defects and false positives. We mentioned some further and specialised annotations extending core JML (non_null, unreachable, modifies, pure) and specification inheritance. Finally, the FindBugs tool was briefly introduced; it needs no specification at all, but can make use of Java annotations such as @NonNull.

Tips for installing tools

Please add comments to let us know how you get on!

Leave a Reply