Executing JML specifications of Java card applications: a case study

Executability provides an important mechanism for validating formal specifications and allows such specifications to serve as prototypes and test oracles. In this case study, we used the jmle tool to execute the JML specification of an electronic purse application written in the Java Card dialect of Java. This effort resulted in numerous improvements to the specification and to the jmle tool itself, as well as insight into how executability can contribute to the use of formal methods in the software development process.

[1]  Cliff B. Jones,et al.  Specifications are not (necessarily) executable , 1989 .

[2]  Fabrice Bouquet,et al.  Symbolic Animation of JML Specifications , 2005, FM.

[3]  Wolfgang Grieskamp,et al.  A Computation Model for Z Based on Concurrent Constraint Resolution , 2000, ZB.

[4]  Catherine Oriat,et al.  Jartege: A Tool for Random Generation of Unit Tests for Java Classes , 2004, QoSA/SOQUA.

[5]  Alan Robinson,et al.  The Inverse Method , 2001, Handbook of Automated Reasoning.

[6]  Patrice Chalin,et al.  An integrated verification environment for JML: architecture and early results , 2007, SAVCBS '07.

[7]  Bart Jacobs,et al.  Formal methods for smart cards: an experience report , 2005, Sci. Comput. Program..

[8]  Tim Wahls,et al.  jmle: A Tool for Executing JML Specifications Via Constraint Programming , 2006, FMICS/PDMC.

[9]  Jean-Louis Lanet,et al.  A case study in JML-based software validation , 2004, Proceedings. 19th International Conference on Automated Software Engineering, 2004..

[10]  Gary T. Leavens,et al.  JML: notations and tools supporting detailed design in Java , 2000 .

[11]  Néstor Cataño,et al.  CHASE: A Static Checker for JML's Assignable Clause , 2002, VMCAI.

[12]  Johannes Link Unit testing in Java , 2003 .

[13]  Bart Jacobs,et al.  The LOOP Compiler for Java and JML , 2001, TACAS.

[14]  R. Knaus Executable specifications , 1989 .

[15]  Néstor Cataño,et al.  Formal Specification and Static Checking of Gemplus' Electronic Purse Using ESC/Java , 2002, FME.

[16]  Daniel Jackson,et al.  Software Abstractions - Logic, Language, and Analysis , 2006 .

[17]  Michael D. Ernst,et al.  An overview of JML tools and applications , 2003, Electron. Notes Theor. Comput. Sci..

[18]  Michael J. Butler,et al.  ProB: A Model Checker for B , 2003, FME.

[19]  Slim Abdennadher,et al.  JACK: A Java Constraint Kit , 1999, Electron. Notes Theor. Comput. Sci..

[20]  Andrei Voronkov,et al.  Handbook of Automated Reasoning: Volume 1 , 2001 .