Model Checking a C++ Software Framework, a Case Study

06/29/2019
by   John Lång, et al.
0

This paper presents a case study on applying two model checkers, SPIN and DIVINE, to verify key properties of a C++ software framework, known as ADAPRO, originally developed at CERN. SPIN was used for verifying properties on the design level. DIVINE was used for verifying simple test applications that interacted with the implementation. Both model checkers were found to have their own respective sets of pros and cons, but the overall experience was positive. Because both model checkers were used in a complementary manner, they provided valuable new insights into the framework, which would arguably have been hard to gain by traditional testing and analysis tools only. Translating the C++ source code into the modeling language of the SPIN model checker helped to find flaws in the original design. With DIVINE, defects were found in parts of the code base that had already been subject to hundreds of hours of unit tests, integration tests, and acceptance tests. Most importantly, model checking was found to be easy to integrate into the workflow of the software project and bring added value, not only as verification, but also validation methodology. Therefore, using model checking for developing library-level code seems realistic and worth the effort.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/12/2019

Boost the Impact of Continuous Formal Verification in Industry

Software model checking has experienced significant progress in the last...
research
07/01/2021

Verifying Verified Code

A recent case study from AWS by Chong et al. proposes an effective metho...
research
03/02/2021

The High-Assurance ROS Framework

This tool paper presents the High-Assurance ROS (HAROS) framework. HAROS...
research
12/04/2017

Model Checking in multiplayer games development

Multiplayer computer games play a big role in the ever-growing entertain...
research
12/30/2020

Solving Interactive Fiction Games via Partial Evaluation and Bounded Model Checking

We present a case study on using program verification tools, specificall...
research
08/09/2022

Google Test/Google Mock to Verify Critical Embedded Software

Critical embedded systems (CES) have become ubiquitous in whether medica...
research
09/20/2022

Declarative Guideline Conformance Checking of Clinical Treatments: A Case Study

Conformance checking is a process mining technique that allows verifying...

Please sign up or login with your details

Forgot password? Click here to reset