http://www.eecs.ucf.edu/~leavens/JML/
http://sourceforge.net/projects/jmlspecs
Source Analyzer
FindBugs--a program which uses static analysisto look for bugsin Java code
http://findbugs.sourceforge.net/
PMD--PMD scans Java source code and looks for potential problems like:
- Possible bugs - empty try/catch/finally/switch statements
- Dead code - unused local variables, parameters and private methods
- Suboptimal code - wasteful String/StringBuffer usage
- Overcomplicated expressions - unnecessary if statements, for loops that could be while loops
- Duplicate code - copied/pasted code means copied/pasted bugs