Abstract
SpecTRM-RL (Specification Tools and Requirements Methodology-Requirements Language) is a modeling language for describing safety-critical software requirements. However, SpecTRM-RL does not support formal verification, which plays a very important role in developing safety-critical systems and software. Lustre is a dataflow synchronous language designed for programming reactive systems. Lustre supports the analysis and formal verification as well as code generation. Therefore, by translating SpecTRM-RL into Lustre, it not only will endow verification function to SpecTRM-RL, but also will make it possible that SpecTRM-RL supports various analysis approaches of codes by using previously developed translator which converts Lustre into NuSMV, PVS, and SAL. In this paper, I present the rules to translate SpecTRM-RL to the Lustre language, and also present an empirical study in which we practically translate a SpecTRM-RL requirements document into Lustre using the rules proposed. This study shows that SpecTRM-RL can be effectively converted into Lustre so that it can support formal verification.
This is a preview of subscription content, access via your institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Yunja Choi, Mats P.E. Heimdahl, “Model Checking RSML-e Requirements,” hase, p. 109, 7th IEEE International Symposium on High Assurance Systems Engineering (HASE’02), 2002.
L. Grady, J Howard, and P. Andersson. Safety-Critical Requirements Specification and Analysis Using SpecTRM. In Proceedings of the 2nd Meeting of the US Software System Safety Working Group, Feb 2002.
An Introductory Guide to SpecTRM, http://www.safeware- eng.com/products/ spectrm/SpecTRMTutorial.pdf
N.Halbwachs, P. Caspi, P. Raymond, and D. Pilaud. The Synchronous Dataflow Programming Language Lustre. In Proceedings of the IEEE, Vol. 79, No.9, pp. 1305-20,September 1991.
A Tutorial of Lustre. http://www-verimag.imag.fr/∼ halbwach/PS/tutorial.ps
P. Caspi, D. Pilaud, N. Halbwachs, and J. Plaice. Lustre: a declarative language for programming synchronous systems. In 14thACM Symposium on Principles of Programming Language, POPL ’87, Munchen, Jan. 1987.
S. P. Miller and J. Duffy. Autocoding Tools Interim Report. Rockwell Collins, Advanced Technology Center Technical Report in contract NCC-01001, February 2004.
NuSMV 2.3 tutorial. http://nusmv.irst.itc.it/NuSMV/tutorial/v23/tutorial.pdf
Sam Owre, John M. Rushby, and Natarajan Shankar. PVS: A Prototype Verification System. 11th International Conference on Automated Deduction, volume 607 of Lecture Notes in Artificial Intelligence, pages 748–752, Saratoga Springs, New York, June 1992. Springer-Verlag
An Introductory Guide to SpecTRM, http://www.safeware-eng.com, Accessed February 14th, 2004.
SpecTRM User Manual, Safeware Engineering, 2003.
J. A. Plaice and N. Halbwachs. Lustre-v2 user’s guide and reference manual. Technical Report SPECTRE L2, IMAG, Grenoble, Oct. 1987.
Adrian Curic. Implementing Lustre programs on Distributed platforms with Real-Time Constraints, Ph.D.Thesis, Universite Joseph Fourier, Grenoble, France, July 2005.
Jean-Louis Camus. Efficient Development of Avionics Software with DO178B Safety Objectives, http://www.esterel-technologies.com/files/ AeronauticsHandBook-SC-HB-DO178B-KCG42-DL.pdf
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2007 Springer
About this paper
Cite this paper
Park, D. (2007). Translation of Safety-Critical Software Requirements Specification to Lustre. In: Sobh, T. (eds) Innovations and Advanced Techniques in Computer and Information Sciences and Engineering. Springer, Dordrecht. https://doi.org/10.1007/978-1-4020-6268-1_29
Download citation
DOI: https://doi.org/10.1007/978-1-4020-6268-1_29
Publisher Name: Springer, Dordrecht
Print ISBN: 978-1-4020-6267-4
Online ISBN: 978-1-4020-6268-1
eBook Packages: EngineeringEngineering (R0)
