International Journal on Software Tools for Technology Transfer

, Volume 7, Issue 3, pp 212–232

An overview of JML tools and applications


  • Lilian Burdy
    • INRIA
  • Yoonsik Cheon
    • Dept. of Computer ScienceUniversity of Texas at El Paso
  • David R. Cok
    • R&D LaboratoriesEastman Kodak Company
  • Michael D. Ernst
    • Computer Science & Artificial Intelligence LabMIT
  • Joseph R. Kiniry
    • Dept. of Computer ScienceUniversity of Nijmegen
  • Gary T. Leavens
    • Dept. of Computer ScienceIowa State University
  • K. Rustan M. Leino
    • Microsoft Research
    • Dept. of Computer ScienceUniversity of Nijmegen
Special section on formal methods for industrial critical systems

DOI: 10.1007/s10009-004-0167-4

Cite this article as:
Burdy, L., Cheon, Y., Cok, D. et al. Int J Softw Tools Technol Transfer (2005) 7: 212. doi:10.1007/s10009-004-0167-4


The Java Modeling Language (JML) can be used to specify the detailed design of Java classes and interfaces by adding annotations to Java source files. The aim of JML is to provide a specification language that is easy to use for Java programmers and that is supported by a wide range of tools for specification typechecking, runtime debugging, static analysis, and verification.

This paper gives an overview of the main ideas behind JML, details about JML’s wide range of tools, and a glimpse into existing applications of JML.


JavaFormal specificationAssertion checkingProgram verificationDesign by Contract

Copyright information

© Springer-Verlag 2004