Concern-specific specification and verification to improve software quality and security

Project supervisors: Frank Piessens, Wouter Joosen, Pierre Verbaeten

Researchers: Lieven Desmet, Bart Jacobs, Jan Smans, Dries Vanoverberghe

Formal methods have long been recognized as an important tool to help ensure quality of software. In this research track we focus on the use of formal specification and verification techniques to eradicate certain classes of bugs. Examples of the classes of bugs that we target are concurrency related bugs and security related bugs.

Our approach consists of the design of concern-specific annotations, whose formal semantics is defined by translation to existing general-purpose specification languages such as Spec# and JML. If the translated program + specification verifies, we show that the original annotated program does not exhibit a specific type of erroneous behavior.


We have instantiated this idea in three different settings:

  1. to deal with concurrency related bugs (data races and deadlocks), as described in detail in the following papers:
  2. to deal with stack-inspection based sandboxing related bugs, as described in detail in the following papers:
  3. to deal with data dependency related bugs as described in detail in the following papers: