Combined Static and Dynamic Verification of Object Oriented Software Through Partial Proofs
Doctoral thesis, 2019
It is quite clear that static and dynamic verification have largely disjoint strengths. Therefore, their combination can allow the verification process to deal with richer properties, with greater ease. The work presented in this thesis addresses this issue by introducing some manners to combine static and dynamic verification, where partial proofs are used as a means to accomplish the combination. The main novelty in these combinations consists in the fact that all of them consider the use of the partial proofs in the verification process, whereas, in general, other verification approaches discard them right away.
The main contributions of this thesis are: (i) ppDATE, an automata-based formalism to specify both data- and control-oriented properties; (ii) structural operational semantics for ppDATE; (iii) a translation of ppDATE to DATE together with a proof of correctness; (iv) StaRVOOrS, a tool for combining (static) deductive verification and runtime verification of object oriented software; (v) a testing focused development methodology which integrates deductive and runtime verification in its workflow; and (vi) a methodology to infer global trace conditions for a system, from partial proofs local to the transitions of a model, obtained by performing low effort verification attempts to properties.
Author
Mauricio Chimento
Chalmers, Computer Science and Engineering (Chalmers), Formal methods
Different measures can be taken to avoid unexpected behaviour on their products. Among these measures, one can highlight the use of \textit{formal verification}. Formal verification consists on proving that a piece of software is correct, i.e. it behaves as it is expected, by showing that it fulfils a formal specification of its intended behaviour through the use of verification techniques. These techniques may be divided into two categories: \textit{static verification} techniques, and \textit{dynamic verification} techniques. In short, static verification techniques deal with the analysis of either concrete source code, or a model of it, whereas, dynamic verification techniques are concerned with the monitoring of software executions.
Static and dynamic verification techniques have disjoint strengths. Therefore, their combination can allow the verification process to deal with richer properties, with a greater ease. The work presented in this thesis introduces some novel manners to combine static and dynamic verification techniques, where partial proofs, i.e. an incomplete proof of property, are used as a means to accomplish the combination. This use of partial proofs corresponds to the main novelty of this work as, in general, other verification approaches discard them right away. As a result, we were able to enhance both the verification of correctness properties, and the development of software, as static verification becomes easier to use, and dynamic verification becomes more efficient.
StaRVOOrS: Unified Static and Runtime Verification of Object-Oriented Software
Swedish Research Council (VR) (2012-4499), 2013-01-01 -- 2015-12-31.
Subject Categories
Embedded Systems
Computer Science
Computer Systems
ISBN
978-91-7597-866-6
Doktorsavhandlingar vid Chalmers tekniska högskola. Ny serie: 4547
Publisher
Chalmers
Room ED, EDIT building, Rännvägen 6B. Chalmers University of Technology.
Opponent: Davide Ancona. University of Genova, Italy.