Closer to Reliable Software: Verifying Functional Behaviour of Concurrent Programs

M. Zaharieva

Abstract

If software code is developed by humans, can we as users rely on its absolute correctness? Today's software is large, complex, and prone to errors. Although many bugs are found in the process of testing, we can never slaim that the delivered software is bug-free. Errors still occur when software is in use; and errors exist that will perhaps never occur. Reaching an absolute zero bug state for usable software is practically impossible. On the other side we have mathematical logic, a very powerful machinery for reasoning and drawing conclusions based on facts. The power of mathematical logic is certainty: when a given statement is mathematically proven, it is indeed absolutely correct. When a technique for verifying software is based on logic, it allows one to mathematically prove properties about the program. These so-called formal verification techniques are very challenging to develop, but what they promise is highly valuable, and so, they certainly deserve close research attention. This thesis shows the benefits and drawbacks of this style of reasoning, and proposes novel techniques that respond to some important verification challenges. Still, mathematical logic is theory, and software is practice. Thus, formal verification can not guarantee absolute correctness of software, but it certainly has the potential to move us much closer to reliable software.
Original languageUndefined
Awarding Institution
  • University of Twente
Supervisors/Advisors
  • Huisman, Marieke , Supervisor
Sponsors
Date of Award1 Oct 2015
Place of PublicationEnschede
Publisher
Print ISBNs978-90-365-3924-1
DOIs
StatePublished - 1 Oct 2015

Fingerprint

Formal logic
Machinery
Testing
Formal verification

Keywords

  • METIS-311738
  • EWI-26315
  • IR-97206

Cite this

Zaharieva, M.. / Closer to Reliable Software: Verifying Functional Behaviour of Concurrent Programs. Enschede : Universiteit Twente, 2015. 236 p.
@misc{387112e9c2624b91a29c188ef9adcb23,
title = "Closer to Reliable Software: Verifying Functional Behaviour of Concurrent Programs",
abstract = "If software code is developed by humans, can we as users rely on its absolute correctness? Today's software is large, complex, and prone to errors. Although many bugs are found in the process of testing, we can never slaim that the delivered software is bug-free. Errors still occur when software is in use; and errors exist that will perhaps never occur. Reaching an absolute zero bug state for usable software is practically impossible. On the other side we have mathematical logic, a very powerful machinery for reasoning and drawing conclusions based on facts. The power of mathematical logic is certainty: when a given statement is mathematically proven, it is indeed absolutely correct. When a technique for verifying software is based on logic, it allows one to mathematically prove properties about the program. These so-called formal verification techniques are very challenging to develop, but what they promise is highly valuable, and so, they certainly deserve close research attention. This thesis shows the benefits and drawbacks of this style of reasoning, and proposes novel techniques that respond to some important verification challenges. Still, mathematical logic is theory, and software is practice. Thus, formal verification can not guarantee absolute correctness of software, but it certainly has the potential to move us much closer to reliable software.",
keywords = "METIS-311738, EWI-26315, IR-97206",
author = "M. Zaharieva",
note = "IPA Dissertation Series No. 2015-21",
year = "2015",
month = "10",
doi = "10.3990/1.9789036539241",
isbn = "978-90-365-3924-1",
publisher = "Universiteit Twente",
school = "University of Twente",

}

Closer to Reliable Software: Verifying Functional Behaviour of Concurrent Programs. / Zaharieva, M.

Enschede : Universiteit Twente, 2015. 236 p.

Research output: ScientificPhD Thesis - Research UT, graduation UT

TY - THES

T1 - Closer to Reliable Software: Verifying Functional Behaviour of Concurrent Programs

AU - Zaharieva,M.

N1 - IPA Dissertation Series No. 2015-21

PY - 2015/10/1

Y1 - 2015/10/1

N2 - If software code is developed by humans, can we as users rely on its absolute correctness? Today's software is large, complex, and prone to errors. Although many bugs are found in the process of testing, we can never slaim that the delivered software is bug-free. Errors still occur when software is in use; and errors exist that will perhaps never occur. Reaching an absolute zero bug state for usable software is practically impossible. On the other side we have mathematical logic, a very powerful machinery for reasoning and drawing conclusions based on facts. The power of mathematical logic is certainty: when a given statement is mathematically proven, it is indeed absolutely correct. When a technique for verifying software is based on logic, it allows one to mathematically prove properties about the program. These so-called formal verification techniques are very challenging to develop, but what they promise is highly valuable, and so, they certainly deserve close research attention. This thesis shows the benefits and drawbacks of this style of reasoning, and proposes novel techniques that respond to some important verification challenges. Still, mathematical logic is theory, and software is practice. Thus, formal verification can not guarantee absolute correctness of software, but it certainly has the potential to move us much closer to reliable software.

AB - If software code is developed by humans, can we as users rely on its absolute correctness? Today's software is large, complex, and prone to errors. Although many bugs are found in the process of testing, we can never slaim that the delivered software is bug-free. Errors still occur when software is in use; and errors exist that will perhaps never occur. Reaching an absolute zero bug state for usable software is practically impossible. On the other side we have mathematical logic, a very powerful machinery for reasoning and drawing conclusions based on facts. The power of mathematical logic is certainty: when a given statement is mathematically proven, it is indeed absolutely correct. When a technique for verifying software is based on logic, it allows one to mathematically prove properties about the program. These so-called formal verification techniques are very challenging to develop, but what they promise is highly valuable, and so, they certainly deserve close research attention. This thesis shows the benefits and drawbacks of this style of reasoning, and proposes novel techniques that respond to some important verification challenges. Still, mathematical logic is theory, and software is practice. Thus, formal verification can not guarantee absolute correctness of software, but it certainly has the potential to move us much closer to reliable software.

KW - METIS-311738

KW - EWI-26315

KW - IR-97206

U2 - 10.3990/1.9789036539241

DO - 10.3990/1.9789036539241

M3 - PhD Thesis - Research UT, graduation UT

SN - 978-90-365-3924-1

PB - Universiteit Twente

ER -

Zaharieva M. Closer to Reliable Software: Verifying Functional Behaviour of Concurrent Programs. Enschede: Universiteit Twente, 2015. 236 p. Available from, DOI: 10.3990/1.9789036539241