Formal Methods in System Design

, Volume 32, Issue 3, pp 235–266

Verification of evolving software via component substitutability analysis

  • Sagar Chaki
  • Edmund Clarke
  • Natasha Sharygina
  • Nishant Sinha
Article

DOI: 10.1007/s10703-008-0053-x

Cite this article as:
Chaki, S., Clarke, E., Sharygina, N. et al. Form Methods Syst Des (2008) 32: 235. doi:10.1007/s10703-008-0053-x

Abstract

This paper presents an automated and compositional procedure to solve the substitutability problem in the context of evolving software systems. Our solution contributes two techniques for checking correctness of software upgrades: (1) a technique based on simultaneous use of over-and under-approximations obtained via existential and universal abstractions; (2) a dynamic assume-guarantee reasoning algorithm—previously generated component assumptions are reused and altered on-the-fly to prove or disprove the global safety properties on the updated system. When upgrades are found to be non-substitutable, our solution generates constructive feedback to developers showing how to improve the components. The substitutability approach has been implemented and validated in the ComFoRT reasoning framework, and we report encouraging results on an industrial benchmark.

Keywords

Compositional verification Assume-guarantee reasoning Automata learning Predicate abstraction Software engineering Model checking 

Copyright information

© Springer Science+Business Media, LLC 2008

Authors and Affiliations

  • Sagar Chaki
    • 1
  • Edmund Clarke
    • 2
  • Natasha Sharygina
    • 2
    • 3
  • Nishant Sinha
    • 4
  1. 1.Software Engineering InstitutePittsburghUSA
  2. 2.School of Computer SciencePittsburghUSA
  3. 3.Universita della Svizzera ItalianaLuganoSwitzerland
  4. 4.Electrical and Computer Engineering DepartmentCarnegie Mellon UniversityPittsburghUSA

Personalised recommendations