A formal software verification concept based on automated theorem proving and reverse engineering
Formal software verification typically involves some levels 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 p...
Saved in:
Published in | Engineering of Computer-Based Systems (ECBS 2002): Proceedings of the IEEE Conference and Workshop on Engineering of Computer-Based Systems (9th: 2002: Lund, Sweden pp. 59 - 66 |
---|---|
Main Authors | , , |
Format | Conference Proceeding |
Language | English |
Published |
IEEE
2002
|
Subjects | |
Online Access | Get full text |
Cover
Loading…
Summary: | Formal software verification typically involves some levels 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 extracts the software specification from its source code. 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: (1) model a group of finite state machines using predicate calculus; (2) extract axiomatic software specification from the source code and log files; and (3) formally verify 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. |
---|---|
ISBN: | 0769515495 9780769515496 |
DOI: | 10.1109/ECBS.2002.999823 |