Advertisement

Deductive Functional Verification of Safety-Critical Embedded C-Code: An Experience Report

  • Dilian Gurov
  • Christian Lidström
  • Mattias Nyberg
  • Jonas Westman
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10471)

Abstract

This paper summarizes our experiences from an exercise in deductive verification of functional properties of automotive embedded C-code in an industrial setting. We propose a formal requirements model that supports the way C-code requirements are currently written at Scania. We describe our work, for a safety-critical module of an embedded system, on formalizing its functional requirements and verifying its C-code implementation by means of VCC, an established tool for deductive verification. We describe the obstacles we encountered, and discuss the automation of the specification and annotation effort as a prerequisite for integrating this technology into the embedded software design process.

References

  1. 1.
    Allocation Element Requirement AE417 Dual-Circuit Steering. Scania Technical Product Data (2015)Google Scholar
  2. 2.
    Alkassar, E., Hillebrand, M.A., Paul, W., Petrova, E.: Automated verification of a small hypervisor. In: Leavens, G.T., O’Hearn, P., Rajamani, S.K. (eds.) VSTTE 2010. LNCS, vol. 6217, pp. 40–54. Springer, Heidelberg (2010). doi: 10.1007/978-3-642-15057-9_3 CrossRefGoogle Scholar
  3. 3.
    Baumann, C., Beckert, B., Blasum, H., Bormer, T.: Formal verification of a microkernel used in dependable software systems. In: Buth, B., Rabe, G., Seyfarth, T. (eds.) SAFECOMP 2009. LNCS, vol. 5775, pp. 187–200. Springer, Heidelberg (2009). doi: 10.1007/978-3-642-04468-7_16 CrossRefGoogle Scholar
  4. 4.
    Cohen, E.: Modular verification of hybrid system code with VCC. CoRR abs/1403.3611 (2014)Google Scholar
  5. 5.
    Cohen, E., Dahlweid, M., Hillebrand, M., Leinenbach, D., Moskal, M., Santen, T., Schulte, W., Tobies, S.: VCC: a practical system for verifying concurrent C. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) TPHOLs 2009. LNCS, vol. 5674, pp. 23–42. Springer, Heidelberg (2009). doi: 10.1007/978-3-642-03359-9_2 CrossRefGoogle Scholar
  6. 6.
    Cohen, E., Moskal, M., Schulte, W., Tobies, S.: A practical verification methodology for concurrent programs. Technical report MSR-TR-2009-15, Microsoft Research, February 2009Google Scholar
  7. 7.
    Cohen, E., Moskal, M., Schulte, W., Tobies, S.: A precise yet efficient memory model for C. In: Workshop on Systems Software Verification (SSV 2009). Electronic Notes in Theoretical Computer Science, vol. 254, pp. 85–103. Elsevier (2009)Google Scholar
  8. 8.
    Cuoq, P., Kirchner, F., Kosmatov, N., Prevosto, V., Signoles, J., Yakobowski, B.: Frama-C. In: Eleftherakis, G., Hinchey, M., Holcombe, M. (eds.) SEFM 2012. LNCS, vol. 7504, pp. 233–247. Springer, Heidelberg (2012). doi: 10.1007/978-3-642-33826-7_16 CrossRefGoogle Scholar
  9. 9.
    Dordowsky, F.: An experimental study using ACSL and Frama-C to formulate and verify low-level requirements from a DO-178C compliant avionics project. In: Formal Integrated Development Environment (F-IDE 2015), pp. 28–41 (2015)Google Scholar
  10. 10.
    Eriksson, J.: Formal Requirement Models for Automotive Embedded Systems. Master’s thesis, KTH Royal Institute of Technology, School of Computer Science and Communication (2016)Google Scholar
  11. 11.
    Gordon, M., Collavizza, H.: Forward with Hoare. In: Roscoe, A., Jones, C., Wood, K. (eds) Reflections on the Work of C.A.R. Hoare, pp. 101–121. Springer, London (2010). doi: 10.1007/978-1-84882-912-1_5
  12. 12.
    Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580 (1969)CrossRefzbMATHGoogle Scholar
  13. 13.
    Lidström, C.: Verification of Functional Requirements of Embedded Automotive C Code. Master’s thesis, KTH Royal Institute of Technology, School of Computer Science and Communication (2016)Google Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • Dilian Gurov
    • 1
  • Christian Lidström
    • 2
  • Mattias Nyberg
    • 1
    • 2
  • Jonas Westman
    • 1
    • 2
  1. 1.KTH Royal Institute of TechnologyStockholmSweden
  2. 2.Systems Development DivisionScania ABSödertäljeSweden

Personalised recommendations