Modular verification of software components in C

被引:108
|
作者
Chaki, S [1 ]
Clarke, E [1 ]
Groce, A [1 ]
Jha, S [1 ]
Veith, H [1 ]
机构
[1] Carnegie Mellon Univ, Pittsburgh, PA 15213 USA
关键词
D O I
10.1109/ICSE.2003.1201217
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present a new methodology for automatic verification of C programs against finite state machine specifications. Our approach is compositional, naturally enabling us to decompose the verification of large software systems into subproblems of manageable complexity. The decomposition reflects the modularity in the software design. We use weak simulation as the notion of conformance between the program and its specification. Following the abstract-verify-refine paradigm, our tool MAGIC first extracts a finite model from C source code using predicate abstraction and theorem proving. Subsequently, simulation is checked via a reduction to Boolean satisfiability. MAGIC is able to interface with several publicly available theorem provers and SAT solvers. We report experimental results with procedures from the Linux kernel and the OpenSSL toolkit.
引用
收藏
页码:385 / 395
页数:11
相关论文
共 50 条
  • [31] Assume-guarantee verification of software components in SOFA 2 framework
    Parizek, P.
    Plasil, F.
    [J]. IET SOFTWARE, 2010, 4 (03) : 210 - 221
  • [32] Compositional verification using CADP of the ScalAgent deployment protocol for software components
    Tronel, F
    Lang, F
    Garavel, H
    [J]. FORMAL METHODS FOR OPEN OBJECT-BASED DISTRIBUTED SYSTEMS, PROCEEDINGS, 2003, 2884 : 244 - 260
  • [33] Decomposing Software Verification into Off-the-Shelf Components: An Application to CEGAR
    Beyer, Dirk
    Haltermann, Jan
    Lemberger, Thomas
    Wehrheim, Heike
    [J]. 2022 ACM/IEEE 44TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2022), 2022, : 536 - 548
  • [34] Sound Modular Verification of C Code Executing in an Unverified Context
    Agten, Pieter
    Jacobs, Bart
    Piessens, Frank
    [J]. ACM SIGPLAN NOTICES, 2015, 50 (01) : 581 - 594
  • [35] VCC: Contract-based Modular Verification of Concurrent C
    Dahlweid, Markus
    Moskal, Michal
    Santen, Thomas
    Tobies, Stephan
    Schulte, Wolfram
    [J]. 2009 31ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, COMPANION VOLUME, 2009, : 429 - +
  • [36] A Lesson on Verification of IoT Software with Frama-C
    Blanchard, Allan
    Kosmatov, Nikolai
    Loulergue, Frederic
    [J]. PROCEEDINGS 2018 INTERNATIONAL CONFERENCE ON HIGH PERFORMANCE COMPUTING & SIMULATION (HPCS), 2018, : 21 - 30
  • [37] Modular verification of multipliers
    Ravi, K
    Pardo, A
    Hachtel, GD
    Somenzi, F
    [J]. FORMAL METHODS IN COMPUTER-AIDED DESIGN, 1996, 1166 : 49 - 63
  • [38] Automating modular verification
    Alur, R
    de Alfaro, L
    Henzinger, TA
    Mang, FYC
    [J]. CONCUR '99: CONCURRENCY THEORY, 1999, 1664 : 82 - 97
  • [39] MODULAR COMPONENTS
    MAISONNIER, C
    [J]. ARCHITECTURE D AUJOURD HUI, 1980, : 12 - 16
  • [40] Design and Verification of Software Components Model Library for Integrated Powertrain Control System
    Hu, Meiqi
    Huang, Ying
    Zhao, Changlu
    Liu, Bolan
    Dai, Xiaoyan
    Li, Huan
    [J]. 2014 IEEE TRANSPORTATION ELECTRIFICATION CONFERENCE AND EXPO (ITEC) ASIA-PACIFIC 2014, 2014,