Specifying JAVA CARD API in OCL

We discuss the development of an OCL specification for the Java Card API. The main purpose of this specification is to support and aid the verification of Java Card programs in the KeY system. The main goal of the KeY system is to integrate object oriented design and formal methods. The already existing specification written in JML (Java Modelling Language) has been used as a starting point for the development of the OCL specification. In this paper we report on the problems that we encountered when writing the specification and their solutions, we present the most interesting parts of the specification, we report on successful verification attempts and finally we evaluate OCL and compare it to JML in the context of Java Card program specification and verification.

[1]  Bernhard Beckert,et al.  The KeY System: Integrating Object-Oriented Design and Formal Methods , 2002, FASE.

[2]  Erik Poll,et al.  Towards a Full Formal Specification of the JavaCard API , 2001, E-smart.

[3]  Bernhard Beckert,et al.  The KeY tool , 2005, Software & Systems Modeling.

[4]  Z. Chen Java Card Technology for Smart Cards: Architecture and Programmer''s Guide. The Java Series. Addis , 2000 .

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

[6]  Patrice Chalin,et al.  Improving JML: For a Safer and More Effective Language , 2003, FME.

[7]  Bernhard Beckert,et al.  A Program Logic for Handling JAVA CARD's Transaction Mechanism , 2003, FASE.

[8]  Albert L. Baker,et al.  JML: A Notation for Detailed Design , 1999, Behavioral Specifications of Businesses and Systems.

[9]  Bernhard Beckert,et al.  Program verification using change information , 2003, First International Conference onSoftware Engineering and Formal Methods, 2003.Proceedings..