Automated translation of VDM to JML-annotated Java. Tran-Jørgensen, P. W. V., Larsen, P. G., & Leavens, G. T. International Journal on Software Tools for Technology Transfer, 2017.
Automated translation of VDM to JML-annotated Java [link]Paper  doi  abstract   bibtex   
When a system specified using the Vienna Development Method (VDM) is realised using code-generation, no guarantees are currently made about the correctness of the generated code. In this paper, we improve code-generation of VDM models by taking contract-based elements such as invariants and pre- and postconditions into account during the code-generation process. The contract-based elements of the Vienna Development Method Specification Language (VDM-SL) are translated into corresponding constructs in the Java Modelling Language (JML) and used to validate the generated code against the properties of the VDM model. VDM-SL and JML are both Design-by-Contract (DbC) languages, with the difference that VDM-SL supports abstract modelling and system specification, while JML is used for detailed specification of Java classes and interfaces. We describe the semantic differences between the contract-based elements of VDM-SL and JML and formulate the translation as a set of rules. We further demonstrate how dynamic JML assertion checks can be used to ensure the consistency of VDM's subtypes when a model is code-generated. The translator is fully automated and produces JML-annotated Java programs that can be checked for correctness using JML tools.
@Article{Jorgensen&17,
author="Tran-J{\o}rgensen, Peter W. V.
and Larsen, Peter Gorm
and Leavens, Gary T.",
title="{Automated translation of VDM to JML-annotated Java}",
journal="International Journal on Software Tools for Technology Transfer",
year="2017",
pages="1--25",
abstract="When a system specified using the Vienna Development Method (VDM) is realised using code-generation, no guarantees are currently made about the correctness of the generated code. In this paper, we improve code-generation of VDM models by taking contract-based elements such as invariants and pre- and postconditions into account during the code-generation process. The contract-based elements of the Vienna Development Method Specification Language (VDM-SL) are translated into corresponding constructs in the Java Modelling Language (JML) and used to validate the generated code against the properties of the VDM model. VDM-SL and JML are both Design-by-Contract (DbC) languages, with the difference that VDM-SL supports abstract modelling and system specification, while JML is used for detailed specification of Java classes and interfaces. We describe the semantic differences between the contract-based elements of VDM-SL and JML and formulate the translation as a set of rules. We further demonstrate how dynamic JML assertion checks can be used to ensure the consistency of VDM's subtypes when a model is code-generated. The translator is fully automated and produces JML-annotated Java programs that can be checked for correctness using JML tools.",
issn="1433-2787",
doi="10.1007/s10009-017-0448-3",
url="http://dx.doi.org/10.1007/s10009-017-0448-3"
}

%G VDM TOOL OVERTURE

Downloads: 0