In software system development, formal models are used to precisely specify the initial requirements, understand what the system is supposed to do and prove properties of the system. Ideally, formal specifications should be developed long before the system is implemented, and in a model-driven software development the code would be automatically generated from the models. However, quite often either code generation is not available or not reliable enough, or the final specification of a system becomes ready only together with (or even after) its implementation. In all these cases, the conformance relation between the formal specification and the concrete implementation must be checked, in order to assure that the software behaves as expected. In this paper, we show how the ASMETA framework, based on the use of the Abstract State Machine (ASM) formal method, can be used to assist the developer in the conformance checking of Java code against ASM models. We present a technique to formally link a Java class with its ASM formal specification, and two approaches for checking their conformance: offline (i.e., before deployment) using model-based test generation, and online (i.e., after deployment) using runtime verification. We also report our experience in applying these two techniques in the context of safety critical systems, where conformance checking of the implementation against its formal specification is highly demanded.

Closing the gap between the specification and the implementation: the ASMETA way / P. Arcaini, A. Gargantini, E. Riccobene - In: Models: Concepts, Theory, Logic, Reasoning and Semantics : Essays Dedicated to Klaus-Dieter Schewe on the Occasion of his 60th Birthday / [a cura di] A. Mashkoor, Q. Wang, B. Thalheim. - Prima edizione. - [s.l] : College Publications, 2018. - ISBN 9781848902763. - pp. 242-263

Closing the gap between the specification and the implementation: the ASMETA way

P. Arcaini;E. Riccobene
Co-primo
2018

Abstract

In software system development, formal models are used to precisely specify the initial requirements, understand what the system is supposed to do and prove properties of the system. Ideally, formal specifications should be developed long before the system is implemented, and in a model-driven software development the code would be automatically generated from the models. However, quite often either code generation is not available or not reliable enough, or the final specification of a system becomes ready only together with (or even after) its implementation. In all these cases, the conformance relation between the formal specification and the concrete implementation must be checked, in order to assure that the software behaves as expected. In this paper, we show how the ASMETA framework, based on the use of the Abstract State Machine (ASM) formal method, can be used to assist the developer in the conformance checking of Java code against ASM models. We present a technique to formally link a Java class with its ASM formal specification, and two approaches for checking their conformance: offline (i.e., before deployment) using model-based test generation, and online (i.e., after deployment) using runtime verification. We also report our experience in applying these two techniques in the context of safety critical systems, where conformance checking of the implementation against its formal specification is highly demanded.
Settore INF/01 - Informatica
2018
Book Part (author)
File in questo prodotto:
File Dimensione Formato  
kd_tribute_2017.pdf

accesso riservato

Tipologia: Post-print, accepted manuscript ecc. (versione accettata dall'editore)
Dimensione 1.45 MB
Formato Adobe PDF
1.45 MB Adobe PDF   Visualizza/Apri   Richiedi una copia
Pubblicazioni consigliate

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/2434/585007
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus ND
  • ???jsp.display-item.citation.isi??? ND
social impact