A formal software verification concept based on automated theorem proving and reverse engineering

被引:3
|
作者
Popovic, M [1 ]
Kovacevic, V [1 ]
Velikic, I [1 ]
机构
[1] Univ Novi Sad, Fac Engn, Dept Comp & Control, YU-21000 Novi Sad, Yugoslavia
关键词
formal software verification; reverse engineering; predicate calculus; automated theorem proving; fault-tolerant and robust software; mission-critical embedded software;
D O I
10.1109/ECBS.2002.999823
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Formal software verification typically involves some level of static theorem proving which is a mathematical process of proving that the function computed by a program match the function specified. A theorem prover, such as THEO automates this process. On the other hand, reverse engineering is a process inverse to traditional engineering. An example is extracting software specification from its source code. Both subjects have been widely addressed in literature but there is still the need for additional research efforts in this area. In this paper we present a formal software verification concept, which is based on automated theorem proving and reverse engineering. We are mainly concerned with communications software and with software for families of communication protocols in particular. In the paper we describe how to: (i) model a group of finite state machines using predicate calculus, (ii) extract axiomatic software specification from the source code and log files, and (iii) formally veri, software for a given operational profile (set of test cases). The concept has been successfully applied to a call processing software for systems, which are installed and fully operational in Moscow and Saint Petersburg, Russia.
引用
收藏
页码:59 / 66
页数:8
相关论文
共 50 条
  • [21] General purpose theorem proving methods in the verification of digital hardware and software
    Moore, JS
    VERIFICATION OF DIGITAL AND HYBRID SYSTEM, 2000, 170 : 14 - 35
  • [22] Formal Verification of C Systems CodeStructured Types, Separation Logic and Theorem Proving
    Harvey Tuch
    Journal of Automated Reasoning, 2009, 42 : 125 - 187
  • [23] A Methodology for the Formal Verification of Dynamic Fault Trees Using HOL Theorem Proving
    Elderhalli, Yassmeen
    Hasan, Osman
    Tahar, Sofiene
    IEEE ACCESS, 2019, 7 : 136176 - 136192
  • [24] A formal automated approach for reverse engineering programs with pointers
    Gannod, GC
    Cheng, BHC
    AUTOMATED SOFTWARE ENGINEERING, 12TH IEEE INTERNATIONAL CONFERENCE, PROCEEDINGS, 1997, : 219 - 226
  • [25] A general formal memory framework for smart contracts verification based on higher-order logic theorem proving
    Yang Z.
    Lei H.
    International Journal of Performability Engineering, 2019, 15 (11) : 2998 - 3007
  • [26] Formal verification of C systems code : SSStructured types, separation logic and theorem proving
    Sydney Research Lab., National ICT Australia, Eveleigh, Australia
    J Autom Reasoning, 2009, 2-4 (125-187):
  • [27] Exploring Software Engineering Data with Formal Concept Analysis
    Sun, Xiaobing
    Chen, Ying
    Li, Bin
    Li, Bixin
    2013 1ST INTERNATIONAL WORKSHOP ON DATA ANALYSIS PATTERNS IN SOFTWARE ENGINEERING (DAPSE), 2013, : 14 - 16
  • [28] Survey on Interactive Theorem Proving Based Concurrent Program Verification
    Wang Z.-Y.
    Wu S.-S.
    Cao Q.-X.
    Ruan Jian Xue Bao/Journal of Software, 2024, 35 (09):
  • [29] A dynamic logic for verification of synchronous models based on theorem proving
    Zhang, Yuanrui
    Mallet, Frederic
    Liu, Zhiming
    FRONTIERS OF COMPUTER SCIENCE, 2022, 16 (04)
  • [30] A dynamic logic for verification of synchronous models based on theorem proving
    Yuanrui ZHANG
    Frdric MALLET
    Zhiming LIU
    Frontiers of Computer Science, 2022, 16 (04) : 228 - 230