A Run-time Assertion Checker for Java using JML

The Java Modeling Language (JML) is a behavioral interface speci cation language tailored for specifying Java modules. This paper describes a source-to-source translation tool that takes a JML speci cation and Java source code for a module and produces source code that checks assertions at run-time. It describes issues unique to JML, including speci cation-only variables, re nement, speci cation inheritance, and privacy. It also describes the design and implementation of the translation tool.

[1]  R. Kramer iContract - The Java(tm) Design by Contract(tm) Tool , 1998 .

[2]  David Welch,et al.  An Exception-Based Assertion Mechanism for C++ , 1998, Journal of object-oriented programming.

[3]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[4]  Sara Porat,et al.  Class Assertions in C++ , 1995, J. Object Oriented Program..

[5]  David S. Rosenblum A Practical Approach to Programming With Assertions , 1995, IEEE Trans. Software Eng..

[6]  Gary T. Leavens,et al.  Forcing behavioral subtyping through specification inheritance , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[7]  Gary T. Leavens,et al.  Preliminary Design of Larch/C++ , 1992, Larch.

[8]  G. L. Schaps,et al.  COMPILER CONSTRUCTION WITH ANTLR AND JAVA : TOOLS FOR BUILDING TOOLS , 1999 .