While formal methods offer the highest level of confidence that software behaves as intended, they are notoriously difficult to use. The Java Modeling Language and the associated OpenJML tool aim to make formal specification and verification more accessible to Java developers. This report gives an overview of JML and assesses its current status and usability.
Though many common Java features have been implemented, lack of standard library support is identified as an obstacle to using JML effectively. To help address that problem, this report documents the process of adding support for a new library to OpenJML.
A project presented to the Department of Computer and Information Sciences State University of New York Polytechnic Institute at Utica.