Skip to main content

Software Quality Assurance by Static Program Analysis

  • Conference paper
  • 1454 Accesses

Part of the book series: Lecture Notes in Business Information Processing ((LNBIP,volume 166))

Abstract

Static program analysis is a viable, sound and automatic technique to prove correctness properties about programs, both functional properties as well as non-functional properties. It is one of the techniques, highly recommended for high criticality levels by several international software-quality standards for the domains of transportation, healthcare, factory automation, and electric/electronic systems. The precision of static analysis increases the more information is made available to it. This additional information can be given by programmer annotations, or it can be transferred from the model level in model-based software design. We give an introduction to static program analysis as a verification technology, describe several applications to the development of safety-critical systems, and show how it can be integrated into a model-based design flow.

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

Buying options

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 PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   49.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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. AbsSint, http://www.absint.com/ait

  2. AbsSint, http://www.absint.com/stackanalyzer/index.htm

  3. Blanchet, B., Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Monniaux, D., Riva, X.: A static analyzer for large safety-critical software. In: Proceedings of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation, PLDI 2003, pp. 196–207. ACM, New York (2003)

    Chapter  Google Scholar 

  4. Cousot, P., Cousot, R.: Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: POPL 1977: Proceedings of the 4th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pp. 238–252. ACM, New York (1977)

    Google Scholar 

  5. Ferdinand, C., Heckmann, R., Langenbach, M., Martin, F., Schmidt, M., Theiling, H., Thesing, S., Wilhelm, R.: Reliable and precise WCET determination for a real-life processor. In: Henzinger, T.A., Kirsch, C.M. (eds.) EMSOFT 2001. LNCS, vol. 2211, pp. 469–485. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  6. Ferdinand, C., Heckmann, R., Sergent, T.L., Lopes, D., Martin, B., Fornari, X., Martin, F.: Combining a high-level design tool for safety-critical systems with a tool for WCET analysis on executables. In: ERTS2 (2008)

    Google Scholar 

  7. Ferdinand, C., Wilhelm, R.: Efficient and precise cache behavior prediction for real-time systems. Real-Time Systems 17(2-3), 131–181 (1999)

    Article  Google Scholar 

  8. Kästner, D., Ferdinand, C.: Efficient verification of non-functional safety properties by abstract interpretation: Timing, stack consumption, and absence of runtime errors. In: Proceedings of the 29th International System Safety Conference, ISSC 2011, Las Vegas (2011)

    Google Scholar 

  9. Kästner, D., Ferdinand, C.: Static verification of non-functional requirements in the ISO-26262. Embedded World Congress (2012)

    Google Scholar 

  10. Kästner, D., Kiffmeier, U., Fleischer, D., Nenova, S., Schlickling, M., Ferdinand, C.: Integrating model-based code generators with static program analyzers. In: Embedded World. Design & Elektronik (2013)

    Google Scholar 

  11. Kildall, G.A.: A unified approach to global program optimization. In: Fischer, P.C., Ullman, J.D. (eds.) POPL, pp. 194–206. ACM (1973)

    Google Scholar 

  12. Kreiker, J., Tarlecki, A., Vardi, M.Y., Wilhelm, R.: Modeling, Analysis, and Verification - the Formal Methods Manifesto 2010 (Dagstuhl Perspectives Workshop 10482). Dagstuhl Manifestos 1(1), 21–40 (2011)

    Google Scholar 

  13. Leroy, X.: Formally verifying a compiler: Why? how? how far? In: CGO. IEEE (2011)

    Google Scholar 

  14. Lev-Ami, T., Reps, T.W., Sagiv, S., Wilhelm, R.: Putting static analysis to work for verification: A case study. In: ISSTA, pp. 26–38 (2000)

    Google Scholar 

  15. PolySpace, http://www.mathworks.de/products/polyspace/

  16. Raymond, P., Maiza, C., Parent-Vigouroux, C., Carrier, F.: Timing analysis enhancement for synchronous program. In: RNTS (2013)

    Google Scholar 

  17. Seidl, H., Wilhelm, R., Hack, S.: Compiler Design - Analysis and Transformation. Springer (2012)

    Google Scholar 

  18. Souyris, J., Pavec, E.L., Himbert, G., Jgu, V., Borios, G.: Computing the worst-case execution time of an avionics program by abstract interpretation. In: Proceedings of the 5th Intl Workshop on Worst-Case Execution Time (WCET) Analysis, pp. 21–24 (2005)

    Google Scholar 

  19. Wilhelm, R.: Determining bounds on execution times. In: Zurawski, R. (ed.) Handbook on Embedded Systems, ch. 14. CRC Press (2006)

    Google Scholar 

  20. Yahav, E.: Verifying safety properties of concurrent java programs using 3-valued logic. In: Hankin, C., Schmidt, D. (eds.) POPL, pp. 27–40. ACM (2001)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer International Publishing Switzerland

About this paper

Cite this paper

Wilhelm, R. (2014). Software Quality Assurance by Static Program Analysis. In: Winkler, D., Biffl, S., Bergsmann, J. (eds) Software Quality. Model-Based Approaches for Advanced Software and Systems Engineering. SWQD 2014. Lecture Notes in Business Information Processing, vol 166. Springer, Cham. https://doi.org/10.1007/978-3-319-03602-1_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-03602-1_1

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-03601-4

  • Online ISBN: 978-3-319-03602-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics