Skip to main content

Development and Verification of a Flight Stack for a High-Altitude Glider in Ada/SPARK 2014

  • Conference paper
  • First Online:
Computer Safety, Reliability, and Security (SAFECOMP 2017)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 10488))

Included in the following conference series:

Abstract

SPARK 2014 is a modern programming language and a new state-of-the-art tool set for development and verification of high-integrity software. In this paper, we explore the capabilities and limitations of its latest version in the context of building a flight stack for a high-altitude unmanned glider. Towards that, we deliberately applied static analysis early and continuously during implementation, to give verification the possibility to steer the software design. In this process we have identified several limitations and pitfalls of software design and verification in SPARK, for which we give workarounds and protective actions to avoid them. Finally, we give design recommendations that have proven effective for verification, and summarize our experiences with this new language.

The source code for this project is available at github.com/tum-ei-rcs/StratoX.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    This particular case has been fixed in recent versions of GNATprove.

  2. 2.

    This also has been fixed in recent versions of the embedded ARM RTS.

References

  1. AdaCore: Ada Drivers Library (2015). https://github.com/AdaCore

  2. Brandon, C., Chapin, P.: The use of SPARK in a complex spacecraft. In: HILT (2016)

    Google Scholar 

  3. Burns, A.: The ravenscar profile. ACM SIGAda Ada Lett. 19(4), 49–52 (1999)

    Article  Google Scholar 

  4. Chapman, R., Schanda, F.: Are we there yet? 20 years of industrial theorem proving with SPARK. In: Klein, G., Gamboa, R. (eds.) ITP 2014. LNCS, vol. 8558, pp. 17–26. Springer, Cham (2014). doi:10.1007/978-3-319-08970-6_2

    Google Scholar 

  5. Dross, C., Efstathopoulos, P., Lesens, D., Mentr, D., Mentré, D., Moy, Y.: Rail, space, security: three case studies for SPARK 2014. In: ERTS2 2014, pp. 1–10 (2014)

    Google Scholar 

  6. Filliâtre, J.C., Paskevich, A.: Why3: Where Programs Meet Provers (2013)

    Google Scholar 

  7. Hoang, D., Moy, Y., Wallenburg, A., Chapman, R.: SPARK 2014 and GNATprove. Int. J. Softw. Tools Technol. Transf. 17(6), 695–707 (2015)

    Article  Google Scholar 

  8. Meier, L., Tanskanen, P., Fraundorfer, F., Pollefeys, M.: PIXHAWK: a system for autonomous flight using onboard computer vision. In: ICRA, pp. 2992–2997 (2011)

    Google Scholar 

  9. Schonberg, E., Pucci, V.: Implementation of a simple dimensionality checking system in Ada 2012. In: HILT 2012, pp. 35–42. ACM, New York (2012)

    Google Scholar 

  10. Trojanek, P., Eder, K.: Verification and testing of mobile robot navigation algorithms: a case study in SPARK. In: IROS 2014, pp. 1489–1494 (2014)

    Google Scholar 

  11. Xiang, J., Knight, J., Sullivan, K.: Real-world types and their application. In: Koornneef, F., Gulijk, C. (eds.) SAFECOMP 2015. LNCS, vol. 9337, pp. 471–484. Springer, Cham (2015). doi:10.1007/978-3-319-24255-2_34

    Chapter  Google Scholar 

Download references

Acknowledgements

Thanks to the SPARK 2014 development and support team of AdaCore for their guidance and insights.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Martin Becker .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer International Publishing AG

About this paper

Cite this paper

Becker, M., Regnath, E., Chakraborty, S. (2017). Development and Verification of a Flight Stack for a High-Altitude Glider in Ada/SPARK 2014. In: Tonetta, S., Schoitsch, E., Bitsch, F. (eds) Computer Safety, Reliability, and Security. SAFECOMP 2017. Lecture Notes in Computer Science(), vol 10488. Springer, Cham. https://doi.org/10.1007/978-3-319-66266-4_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-66266-4_7

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-66265-7

  • Online ISBN: 978-3-319-66266-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics