Formal Verification of Java Code Generation from UML Models

UML specifications offer the advantage to describe software systems while the actual task of implementing code for them is passed to code generators that automatically produce e.g. Java code. For safety reasons, it is necessary that the generated code is semantically equivalent to the original UML specification. In this paper, we present our approach to formally verify within the Isabelle/HOL theorem prover that a certain algorithm for Java code generation from UML specifications is semantically correct. This proof is part of more extensive ongoing work aiming to verify UML transformations and code generation within the Fujaba tool suite.

[1]  B. Jacobs,et al.  A tutorial on (co)algebras and (co)induction , 1997 .

[2]  Amir Pnueli,et al.  Translation Validation , 1998, TACAS.

[3]  Lawrence C. Paulson,et al.  A fixedpoint approach to (co)inductive and (co)datatype definitions , 2000, Proof, Language, and Interaction.

[4]  Scott A. Smolka,et al.  A Compositional Semantics for Statecharts using Labeled Transition Systems , 1994, CONCUR.

[5]  Sabine Glesner,et al.  Formal verification of dead code elimination in Isabelle/HOL , 2005, Third IEEE International Conference on Software Engineering and Formal Methods (SEFM'05).

[6]  Rocco De Nicola,et al.  Extensional equivalences for transition systems , 1987, Acta Informatica.

[7]  Tobias Nipkow,et al.  Verified Bytecode Verifiers , 2001, FoSSaCS.

[8]  Sabine Glesner,et al.  Logische und softwaretechnische Herausforderungen bei der Verifikation optimierender Compiler , 2005, Software Engineering.

[9]  Gerhard Goos,et al.  Verifix: Konstruktion und Architektur verifizierender Übersetzer (Verifix: Construction and Architecture of Verifying Compilers) , 2004, it Inf. Technol..

[10]  Andrea Maggiolo-Schettini,et al.  Equivalences of Statecharts , 1996, CONCUR.

[11]  Michael von der Beeck,et al.  A Comparison of Statecharts Variants , 1994, FTRTFT.

[12]  Andrzej Wasowski On efficient program synthesis from statecharts , 2003, LCTES '03.

[13]  Sabine Glesner,et al.  Optimizing Code Generation from SSA Form: A Comparison Between Two Formal Correctness Proofs in Isabelle/HOL , 2005, COCV@ETAPS.

[14]  Amir Pnueli,et al.  What is in a Step: On the Semantics of Statecharts , 1991, TACS.

[15]  Rance Cleaveland,et al.  A compositional approach to statecharts semantics , 2000, SIGSOFT '00/FSE-8.

[16]  Amnon Naamad,et al.  The STATEMATE semantics of statecharts , 1996, TSEM.

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

[18]  David Harel,et al.  On visual formalisms , 1988, CACM.