Loading…
Model Checking a C++ Software Framework, a Case Study
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 th...
Saved in:
Published in: | arXiv.org 2019-06 |
---|---|
Main Authors: | , |
Format: | Article |
Language: | English |
Subjects: | |
Online Access: | Get full text |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
cited_by | |
---|---|
cites | |
container_end_page | |
container_issue | |
container_start_page | |
container_title | arXiv.org |
container_volume | |
creator | Lång, John I S W B Prasetya |
description | 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. |
doi_str_mv | 10.48550/arxiv.1907.00172 |
format | article |
fullrecord | <record><control><sourceid>proquest</sourceid><recordid>TN_cdi_proquest_journals_2250849450</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>2250849450</sourcerecordid><originalsourceid>FETCH-LOGICAL-a520-34166a57a58e430a6642335ed241616ece9b36d1d5822a413ccdd53ae8fb380b3</originalsourceid><addsrcrecordid>eNotjstOwzAQRS0kJKrSD2BniWVJGI89jrNEEaVIRSzafTWJJ9AHDeRB4e8pgtVZHOncq9SVgdQFIrjl9mvzmZocshTAZHimRmitSYJDvFCTrtsCAPoMiexI0VMTZa-LV6l2m8OLZl1Mp3rZ1P2RW9Gzlt_k2LS7m1_DnehlP8TvS3Ve876TyT_HajW7XxXzZPH88FjcLRImhMQ64z1TxhTEWWDv3ekJScSTMF4qyUvro4kUENkZW1UxkmUJdWkDlHasrv-y723zMUjXr7fN0B5Oi2tEguByR2B_ADY7RDM</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>2250849450</pqid></control><display><type>article</type><title>Model Checking a C++ Software Framework, a Case Study</title><source>Publicly Available Content (ProQuest)</source><creator>Lång, John ; I S W B Prasetya</creator><creatorcontrib>Lång, John ; I S W B Prasetya</creatorcontrib><description>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.</description><identifier>EISSN: 2331-8422</identifier><identifier>DOI: 10.48550/arxiv.1907.00172</identifier><language>eng</language><publisher>Ithaca: Cornell University Library, arXiv.org</publisher><subject>Acceptance tests ; C (programming language) ; C plus plus ; Case studies ; Computer models ; Design defects ; Program verification (computers) ; Software ; Source code ; Translating ; Workflow</subject><ispartof>arXiv.org, 2019-06</ispartof><rights>2019. This work is published under http://arxiv.org/licenses/nonexclusive-distrib/1.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License.</rights><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktohtml>$$Uhttps://www.proquest.com/docview/2250849450?pq-origsite=primo$$EHTML$$P50$$Gproquest$$Hfree_for_read</linktohtml><link.rule.ids>780,784,25753,27925,37012,44590</link.rule.ids></links><search><creatorcontrib>Lång, John</creatorcontrib><creatorcontrib>I S W B Prasetya</creatorcontrib><title>Model Checking a C++ Software Framework, a Case Study</title><title>arXiv.org</title><description>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.</description><subject>Acceptance tests</subject><subject>C (programming language)</subject><subject>C plus plus</subject><subject>Case studies</subject><subject>Computer models</subject><subject>Design defects</subject><subject>Program verification (computers)</subject><subject>Software</subject><subject>Source code</subject><subject>Translating</subject><subject>Workflow</subject><issn>2331-8422</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2019</creationdate><recordtype>article</recordtype><sourceid>PIMPY</sourceid><recordid>eNotjstOwzAQRS0kJKrSD2BniWVJGI89jrNEEaVIRSzafTWJJ9AHDeRB4e8pgtVZHOncq9SVgdQFIrjl9mvzmZocshTAZHimRmitSYJDvFCTrtsCAPoMiexI0VMTZa-LV6l2m8OLZl1Mp3rZ1P2RW9Gzlt_k2LS7m1_DnehlP8TvS3Ve876TyT_HajW7XxXzZPH88FjcLRImhMQ64z1TxhTEWWDv3ekJScSTMF4qyUvro4kUENkZW1UxkmUJdWkDlHasrv-y723zMUjXr7fN0B5Oi2tEguByR2B_ADY7RDM</recordid><startdate>20190629</startdate><enddate>20190629</enddate><creator>Lång, John</creator><creator>I S W B Prasetya</creator><general>Cornell University Library, arXiv.org</general><scope>8FE</scope><scope>8FG</scope><scope>ABJCF</scope><scope>ABUWG</scope><scope>AFKRA</scope><scope>AZQEC</scope><scope>BENPR</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>HCIFZ</scope><scope>L6V</scope><scope>M7S</scope><scope>PIMPY</scope><scope>PQEST</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PRINS</scope><scope>PTHSS</scope></search><sort><creationdate>20190629</creationdate><title>Model Checking a C++ Software Framework, a Case Study</title><author>Lång, John ; I S W B Prasetya</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-a520-34166a57a58e430a6642335ed241616ece9b36d1d5822a413ccdd53ae8fb380b3</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2019</creationdate><topic>Acceptance tests</topic><topic>C (programming language)</topic><topic>C plus plus</topic><topic>Case studies</topic><topic>Computer models</topic><topic>Design defects</topic><topic>Program verification (computers)</topic><topic>Software</topic><topic>Source code</topic><topic>Translating</topic><topic>Workflow</topic><toplevel>online_resources</toplevel><creatorcontrib>Lång, John</creatorcontrib><creatorcontrib>I S W B Prasetya</creatorcontrib><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>Materials Science & Engineering Collection</collection><collection>ProQuest Central (Alumni)</collection><collection>ProQuest Central</collection><collection>ProQuest Central Essentials</collection><collection>ProQuest Central</collection><collection>Technology Collection</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central Korea</collection><collection>SciTech Premium Collection</collection><collection>ProQuest Engineering Collection</collection><collection>Engineering Database</collection><collection>Publicly Available Content (ProQuest)</collection><collection>ProQuest One Academic Eastern Edition (DO NOT USE)</collection><collection>ProQuest One Academic</collection><collection>ProQuest One Academic UKI Edition</collection><collection>ProQuest Central China</collection><collection>Engineering Collection</collection><jtitle>arXiv.org</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Lång, John</au><au>I S W B Prasetya</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Model Checking a C++ Software Framework, a Case Study</atitle><jtitle>arXiv.org</jtitle><date>2019-06-29</date><risdate>2019</risdate><eissn>2331-8422</eissn><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.</abstract><cop>Ithaca</cop><pub>Cornell University Library, arXiv.org</pub><doi>10.48550/arxiv.1907.00172</doi><oa>free_for_read</oa></addata></record> |
fulltext | fulltext |
identifier | EISSN: 2331-8422 |
ispartof | arXiv.org, 2019-06 |
issn | 2331-8422 |
language | eng |
recordid | cdi_proquest_journals_2250849450 |
source | Publicly Available Content (ProQuest) |
subjects | Acceptance tests C (programming language) C plus plus Case studies Computer models Design defects Program verification (computers) Software Source code Translating Workflow |
title | Model Checking a C++ Software Framework, a Case Study |
url | http://sfxeu10.hosted.exlibrisgroup.com/loughborough?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2024-12-29T19%3A37%3A44IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Model%20Checking%20a%20C++%20Software%20Framework,%20a%20Case%20Study&rft.jtitle=arXiv.org&rft.au=L%C3%A5ng,%20John&rft.date=2019-06-29&rft.eissn=2331-8422&rft_id=info:doi/10.48550/arxiv.1907.00172&rft_dat=%3Cproquest%3E2250849450%3C/proquest%3E%3Cgrp_id%3Ecdi_FETCH-LOGICAL-a520-34166a57a58e430a6642335ed241616ece9b36d1d5822a413ccdd53ae8fb380b3%3C/grp_id%3E%3Coa%3E%3C/oa%3E%3Curl%3E%3C/url%3E&rft_id=info:oai/&rft_pqid=2250849450&rft_id=info:pmid/&rfr_iscdi=true |