Translation of Safety-Critical Software Requirements Specification to Lustre

  • Dongchul Park


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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    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.Google Scholar
  2. [2]
    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.Google Scholar
  3. [3]
    An Introductory Guide to SpecTRM, http://www.safeware- spectrm/SpecTRMTutorial.pdfGoogle Scholar
  4. [4]
    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.Google Scholar
  5. [5]
    A Tutorial of Lustre.∼ halbwach/PS/tutorial.psGoogle Scholar
  6. [6]
    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.Google Scholar
  7. [7]
    S. P. Miller and J. Duffy. Autocoding Tools Interim Report. Rockwell Collins, Advanced Technology Center Technical Report in contract NCC-01001, February 2004.Google Scholar
  8. [8]
    NuSMV 2.3 tutorial. Scholar
  9. [9]
    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-VerlagGoogle Scholar
  10. [10]
    An Introductory Guide to SpecTRM,, Accessed February 14th, 2004.Google Scholar
  11. [11]
    SpecTRM User Manual, Safeware Engineering, 2003.Google Scholar
  12. [12]
    J. A. Plaice and N. Halbwachs. Lustre-v2 user’s guide and reference manual. Technical Report SPECTRE L2, IMAG, Grenoble, Oct. 1987.Google Scholar
  13. [13]
    Adrian Curic. Implementing Lustre programs on Distributed platforms with Real-Time Constraints, Ph.D.Thesis, Universite Joseph Fourier, Grenoble, France, July 2005.Google Scholar
  14. [14]
    Jean-Louis Camus. Efficient Development of Avionics Software with DO178B Safety Objectives, AeronauticsHandBook-SC-HB-DO178B-KCG42-DL.pdfGoogle Scholar

Copyright information

© Springer 2007

Authors and Affiliations

  • Dongchul Park
    • 1
  1. 1.6-240 EE/CS Building University of MinnesotaMinneapolis

Personalised recommendations