Model checking a C++ software framework: A case study

    Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademicpeer-review

    Abstract

    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.

    Original languageEnglish
    Title of host publicationESEC/FSE 2019 - Proceedings of the 2019 27th ACM Joint Meeting European Software Engineering Conference and Symposium on the Foundations of Software Engineering
    EditorsSven Apel, Marlon Dumas, Alessandra Russo, Dietmar Pfahl
    PublisherAssociation for Computing Machinery
    Pages1026-1036
    Number of pages11
    ISBN (Electronic)9781450355728
    DOIs
    Publication statusPublished - 12 Aug 2019
    Event27th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/FSE 2019 - Tallinn, Estonia
    Duration: 26 Aug 201930 Aug 2019

    Conference

    Conference27th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/FSE 2019
    Country/TerritoryEstonia
    CityTallinn
    Period26/08/1930/08/19

    Keywords

    • Model checking C++ case study
    • Model checking concurrent C++
    • Verification concurrent C++

    Fingerprint

    Dive into the research topics of 'Model checking a C++ software framework: A case study'. Together they form a unique fingerprint.

    Cite this