Skip to main content

Lightweight Static Analysis Check of Upgrades in C/C++ Software

  • Chapter
  • First Online:
Book cover Validation of Evolving Software
  • 448 Accesses

Abstract

In this chapter we describe an algorithm for efficient formal verification of changes in software built on top of a model checking procedure that traverses the control flow graph explicitly while representing the data symbolically. The main idea of our algorithm is to guide the control flow graph exploration first to the paths that go through the changed nodes in the graph. This idea can, in fact, be implemented on top of any validation tool that traverses the control flow graph explicitly, as we explain in more detail below. In our experiments, we implemented this algorithm on top of the concolic model checker ExpliSAT, developed at IBM, and the experimental results on real programs showed a significant improvement in performance compared to re-verification of the whole program. Unsurprisingly, the speedup is especially significant when the change involves a small fraction of paths in the control flow graph—a situation typical of a small upgrade.

The work was done while S. Ruah was at IBM Research

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
Hardcover Book
USD 54.99
Price excludes VAT (USA)
  • Durable hardcover 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

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Hana Chockler .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this chapter

Cite this chapter

Chockler, H., Ruah, S. (2015). Lightweight Static Analysis Check of Upgrades in C/C++ Software. In: Chockler, H., Kroening, D., Mariani, L., Sharygina, N. (eds) Validation of Evolving Software. Springer, Cham. https://doi.org/10.1007/978-3-319-10623-6_4

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-10623-6_4

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-10622-9

  • Online ISBN: 978-3-319-10623-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics