Modelling is an essential part of many scientific and engineering disciplines. In this theme we study automata, (mathematical) models that describe software systems in terms of states and transitions between states. Automata-based models provide powerful abstractions that for instance allow us to verify systems whose behavior is uncertain, synthesize controller software that is correct by construction, and to develop learning-based testing algorithms that find deep software bugs. The research in this theme belongs to the general area of formal methods.
This focus area considers the verification of systems whose behavior is uncertain, e.g., due to the effects of sensors in the system. Examples for verification questions we ask are what is the probability that the system reaches an error state? and what is the expected time until we deplete our battery?. We assume that models are given in a high-level representation of a Markov decision process and study various extensions of Markov decision processes. Most techniques we develop are implemented in the probabilistic model checker Storm.
Supervisory controller synthesis is a main element of synthesis-based engineering. It involves the automatic generation of (provably correct) supervisory controller models. Implementation of the controller is achieved through (implementation language) code generation, improving speed and reducing the number of errors introduced at this stage. Combined, they allow engineers to focus on what the controller should do, rather than how it should do it, and how this is to be implemented. In the Explainable synthesis of supervisory controllers (ExSyn) project, in collaboration with ASML, we explore how to develop supervisory controllers more efficiently using synthesis-based engineering.
Model learning aims to construct aims to construct state diagram models of black-box software and hardware systems by providing inputs and observing outputs. Model-based testing is a testing method that uses a model (or specification) of the black-box behavior of a system to generate test cases to establish whether a system conforms to its specification. Model learning and model-based testing are dual activities: (1) we typically want to use model-based testing in order to increase our confidence in the correctness of a learned model and to find counterexamples, and (2) often a learned model may serve as a specification, for instance to check conformance of a refactored implementation.
Systematic testing is important for software quality, but it is also error-prone, expensive, and time-consuming. Model-based testing can improve the effectiveness and efficiency of the testing process. Model learning is emerging as a highly effective bug-finding technique, with applications in areas such as banking cards, network protocols and legacy software.
Within our group, we tackle the following research challenges:
The categorical notion of co-algebra forms an ideal abstraction technique, as it describes systems in terms of observations and provides a general notion of "state-based system", generalising widely occurring structures such as automata, transition systems and probabilistic systems. Of particular interest is the interaction with algebraic structure: this interaction occurs for instance in the semantics of programming language At SWS we work on the interaction algebraic and coalgebraic techniques, and their application to concrete analysis tasks of systems, such as automata learning.
The interaction between algebra and coalgebra is also apparent in concurrency theory. Thus, for instance, we further develop algebraic models such as Kleene algebra and its extensions, together with coalgebraic decision procedures. We study notions of equivalence between (concurrent) systems through notions of behavioural equivalence and their intricate relationships with modal logics.
Please use the menu on the left for more information.