2017•Chalmers Research (Chalmers University of Technology)Open access

Unified Static and Runtime Verification of Object-Oriented Software

Mauricio Chimento

Open full text 0 citations

Abstract

At the time of verifying software one can make use of several verification techniques. These techniques mostly fall in one of two categories: Static Verification and Dynamic Verification. Runtime Verification is a dynamic verification technique which is concerned with the monitoring of software, providing guarantees that observed runs comply with specified properties. It is strong in analysing systems of a complexity that is difficult to address by static verification, e.g., systems with numerous interacting sub-units, real (as opposed to abstract) data, etc. On the other hand, the major drawbacks of runtime verification are the impossibility to extrapolate correct observations to all possible executions, and that the monitoring of a program introduces runtime overheads. The work presented in this thesis addresses these issues by introducing a novel approach which combines the use of runtime verification with static verification, in such a way that:(i) static verification attempts to `resolve' the parts of the properties which can be confirmed statically; (ii) the static results, even if only partial, are used to improve the specified properties such that generated monitors will not check at runtime what was already verified statically.In addition, this thesis introduces the specification language ppDATE (and its semantics), which allows to describe properties suitable for static and runtime verification within a single formalism; the verification tool StaRVOOrS, which embodies the previously mentioned approach; and presents some case studies to demonstrate the effectiveness of using this new approach.

Open-access reader

About this research paper

What this paper is about

At the time of verifying software one can make use of several verification techniques. These techniques mostly fall in one of two categories: Static Verification and Dynamic Verification. Runtime Verification is a dynamic verification technique which is concerned with the monitoring of software, providing guarantees that observed runs comply with specified properties. It is strong in analysing systems of a complexity that is difficult to address by static verification, e.g., systems with numerous interacting sub-units, real (as opposed to abstract) data, etc. On the other hand, the major drawbacks of runtime verification are the impossibility to extrapolate correct observations to all possible executions, and that the monitoring of a program introduces runtime overheads. The work presented in this thesis addresses these issues by introducing a novel approach which combines the use of runtime verification with static verification, in such a way that:(i) static verification attempts to `resolve' the parts of the properties which can be confirmed statically; (ii) the static results, even if only partial, are used to improve the specified properties such that generated monitors will not check at runtime what was already verified statically.In addition, this thesis introduces the specification language ppDATE (and its semantics), which allows to describe properties suitable for static and runtime verification within a single formalism; the verification tool StaRVOOrS, which embodies the previously mentioned approach; and presents some case studies to demonstrate the effectiveness of using this new approach.

Why it matters

A significance statement is not available in the OpenAlex record.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

At the time of verifying software one can make use of several verification techniques. These techniques mostly fall in one of two categories: Static Verification and Dynamic Verification. Runtime Verification is a dynamic verification technique which is concerned with the monitoring of software, providing guarantees that observed runs comply with specified properties. It is strong in analysing systems of a complexity that is difficult to address by static verification, e.g., systems with numerous interacting sub-units, real (as opposed to abstract) data, etc. On the other hand, the major drawbacks of runtime verification are the impossibility to extrapolate correct observations to all possible executions, and that the monitoring of a program introduces runtime overheads. The work presented in this thesis addresses these issues by introducing a novel approach which combines the use of runtime verification with static verification, in such a way that:(i) static verification attempts to `resolve' the parts of the properties which can be confirmed statically; (ii) the static results, even if only partial, are used to improve the specified properties such that generated monitors will not check at runtime what was already verified statically.In addition, this thesis introduces the specification language ppDATE (and its semantics), which allows to describe properties suitable for static and runtime verification within a single formalism; the verification tool StaRVOOrS, which embodies the previously mentioned approach; and presents some case studies to demonstrate the effectiveness of using this new approach.

Key concepts: Runtime verification, Computer science, Software verification, High-level verification, Intelligent verification, Functional verification, Static analysis, Formal verification

Related papers

Back to paper searchBrowse research topicsOriginal source
Unified Static and Runtime Verification of Object-Oriented Software — Research Paper | ScholarLens