Translation from Event-B into Eiffel

Formal modelling languages play a key role in the development of software: they enable users to specify functional requirements that serve as documentation as well; they enable users to prove the correctness of system properties, especially for critical systems. However, there is still an open quest...

Full description

Bibliographic Details
Main Authors: Sofia Reznikova, Victor Rivera, Joo Young Lee, Manuel Mazzara
Format: Article
Language:English
Published: Yaroslavl State University 2018-12-01
Series:Modelirovanie i Analiz Informacionnyh Sistem
Subjects:
Online Access:https://www.mais-journal.ru/jour/article/view/763
id doaj-89c06ed9cb644629b15872b8a3de4a25
record_format Article
spelling doaj-89c06ed9cb644629b15872b8a3de4a252021-07-29T08:15:15ZengYaroslavl State UniversityModelirovanie i Analiz Informacionnyh Sistem1818-10152313-54172018-12-0125662363610.18255/1818-1015-2018-6-623-636531Translation from Event-B into EiffelSofia Reznikova0Victor Rivera1Joo Young Lee2Manuel Mazzara3Innopolis UniversityInnopolis UniversityInnopolis UniversityInnopolis UniversityFormal modelling languages play a key role in the development of software: they enable users to specify functional requirements that serve as documentation as well; they enable users to prove the correctness of system properties, especially for critical systems. However, there is still an open question on how to map formal models to a specific programming language. In order to propose a solution, this paper presents a source-to-source mapping between Event-B models, a formal modelling language for reactive systems, and Eiffel programs, an Object Oriented (O-O) programming language. The mapping not only generates an actual Eiffel code of the Event-B model, but also translates model properties as contracts. The contracts follow the Design by Contract principle and are natively supported by the programming language. The mapping is implemented in the freely available Rodin plug-in EB2Eiffel. Thus, users can develop systems (i) starting with the modelling of functional requirements (properties) in Event-B, then (ii) formally proving the correctness of such properties in Rodin and finally (iii) by using EB2Eiffel to translate the model into Eiffel. In Eiffel, users can extend/customise the implementation of the model and formally prove it against the initial model. This paper also presents different Event-B models from the literature to test EB2Eiffel and its limitations. The article is published in the authors’ wording.https://www.mais-journal.ru/jour/article/view/763stepwise refinementdesign-by-contractformal modellingreactive systemsevent-beiffel
collection DOAJ
language English
format Article
sources DOAJ
author Sofia Reznikova
Victor Rivera
Joo Young Lee
Manuel Mazzara
spellingShingle Sofia Reznikova
Victor Rivera
Joo Young Lee
Manuel Mazzara
Translation from Event-B into Eiffel
Modelirovanie i Analiz Informacionnyh Sistem
stepwise refinement
design-by-contract
formal modelling
reactive systems
event-b
eiffel
author_facet Sofia Reznikova
Victor Rivera
Joo Young Lee
Manuel Mazzara
author_sort Sofia Reznikova
title Translation from Event-B into Eiffel
title_short Translation from Event-B into Eiffel
title_full Translation from Event-B into Eiffel
title_fullStr Translation from Event-B into Eiffel
title_full_unstemmed Translation from Event-B into Eiffel
title_sort translation from event-b into eiffel
publisher Yaroslavl State University
series Modelirovanie i Analiz Informacionnyh Sistem
issn 1818-1015
2313-5417
publishDate 2018-12-01
description Formal modelling languages play a key role in the development of software: they enable users to specify functional requirements that serve as documentation as well; they enable users to prove the correctness of system properties, especially for critical systems. However, there is still an open question on how to map formal models to a specific programming language. In order to propose a solution, this paper presents a source-to-source mapping between Event-B models, a formal modelling language for reactive systems, and Eiffel programs, an Object Oriented (O-O) programming language. The mapping not only generates an actual Eiffel code of the Event-B model, but also translates model properties as contracts. The contracts follow the Design by Contract principle and are natively supported by the programming language. The mapping is implemented in the freely available Rodin plug-in EB2Eiffel. Thus, users can develop systems (i) starting with the modelling of functional requirements (properties) in Event-B, then (ii) formally proving the correctness of such properties in Rodin and finally (iii) by using EB2Eiffel to translate the model into Eiffel. In Eiffel, users can extend/customise the implementation of the model and formally prove it against the initial model. This paper also presents different Event-B models from the literature to test EB2Eiffel and its limitations. The article is published in the authors’ wording.
topic stepwise refinement
design-by-contract
formal modelling
reactive systems
event-b
eiffel
url https://www.mais-journal.ru/jour/article/view/763
work_keys_str_mv AT sofiareznikova translationfromeventbintoeiffel
AT victorrivera translationfromeventbintoeiffel
AT jooyounglee translationfromeventbintoeiffel
AT manuelmazzara translationfromeventbintoeiffel
_version_ 1721256704571604992