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...
Main Authors: | , , , |
---|---|
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 |