Generating JML Specifications from UML State Diagrams

We describe our work on the prototype AutoJML tool which automatically derives JML (Java Modelling Language) specifications from UML state diagrams. UML is widely used for modelling Object-Oriented systems on an abstract level. It should be possible to test whether concrete program code actually implements a UML model. The generated JML specifications can be used for this. There exist tools to verify whether Java code conforms to a JML specification.

[1]  Stephan Merz,et al.  Model checking UML state machines and collaborations , 2001, Workshop on Software Model Checking @ CAV.

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

[3]  Erik Poll,et al.  From Finite State Machines to Provably Correct Java Card Applets , 2003, SEC.

[4]  Renaud Marlet,et al.  Security Properties and Java Card Specificities To Be Studied in the SecSafe Project , 2001 .

[5]  Erik Poll,et al.  Implementing a Formally Verifiable Security Protocol in Java Card , 2003, SPC.

[6]  Greg Nelson,et al.  Extended static checking for Java , 2002, PLDI '02.

[7]  Wojciech Mostowski Chalmers Rigorous development of JavaCard applications , 2001 .

[8]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[9]  Thomas Colcombet,et al.  Enforcing trace properties by program transformation , 2000, POPL '00.

[10]  Kurt Stenzel,et al.  A Method for Secure Smartcard Applications , 2002, AMAST.

[11]  William G. Griswold,et al.  Dynamically discovering likely program invariants to support program evolution , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[12]  Claude Marché,et al.  The KRAKATOA tool for certificationof JAVA/JAVACARD programs annotated in JML , 2004, J. Log. Algebraic Methods Program..

[13]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[14]  Johan Lilius,et al.  vUML: a tool for verifying UML models , 1999, 14th IEEE International Conference on Automated Software Engineering.