O Java Modeling Language ou JML é uma linguagem de especificação para programas Java que usa a Lógica de Hoare, as pre, poscondições e invariantes e que segue o paradigma da Programação por contrato.