Research

Research

We develop rigorous methods, from formal models to testing and security analysis, to build autonomous systems that people can depend on.

Why autonomous and dependable?

Modern systems are increasingly decentralised and autonomous, and therefore increasingly difficult and error-prone to build. Drones, robots, vehicles, industrial plants and microservice platforms must provide continuous service, tolerate faults, adapt to change and resist attacks, and they must do all this while protecting the data and privacy of their users. In embedded and cyber-physical systems, a software misbehaviour can have disruptive effects on the surrounding physical world.

More and more often, the autonomous components of these systems are driven by artificial intelligence: perception based on deep learning, and agents built on large language models (LLMs) that plan, take decisions and act on their own. These technologies are remarkably useful, but they are statistical in nature. They can fail in unexpected ways, be manipulated through adversarial inputs such as prompt injection, and their behaviour is hard to specify and verify. Finding ways to integrate them safely into critical systems is one of the great open challenges of our time, and one we want to help solve.

Dependability is the umbrella term for the qualities all these systems need: availability, reliability, safety, integrity, confidentiality and maintainability. MADS works on the main ways to achieve them, whether a system is built from conventional software or from AI-based agents: preventing faults through correct-by-construction design, removing them through testing and verification, and protecting systems against malicious attacks.

Attributes of dependability

  • Availabilityreadiness for correct service
  • Reliabilitycontinuity of correct service
  • Safetyno catastrophic consequences
  • Integrityno improper alterations
  • Confidentialityno unauthorised disclosure
  • Maintainabilityability to evolve and be repaired

Research areas

Three areas, one lab

Software and System Testing

Finding failures before users do: automated test generation and quality assurance for complex software, AI-based and self-adaptive systems.

  • Automated test generation and search-based testing
  • Testing of deep-learning and AI-enabled systems
  • Simulation-based testing of autonomous and cyber-physical systems
  • Self-adaptive systems and microservices
  • Test adequacy, mutation analysis and oracles
Visit

Cybersecurity

Breaking and fixing real systems: security of protocols, networks and industrial devices, from formal verification to hands-on vulnerability research.

  • Formal analysis of authentication and communication protocols
  • Security of Operational Technology and industrial control systems
  • Vulnerability assessment and responsible disclosure
  • Network discovery and monitoring
  • Privacy and security of IoT and embedded devices
Visit

Choreographic Autonomous Systems

Correct by construction: choreographic languages, types and formal models for coordinating fleets of autonomous, distributed agents.

  • Choreographic programming and multiparty session types
  • Coordination of autonomous agents, robots and drones
  • Formal models of concurrency and distribution (bigraphs, process calculi)
  • Type theory and semantics of programming languages
  • Verification and certified tools with proof assistants
Visit

Foundations

Built on solid ground

Since its foundation in 2013, the lab has contributed to the theory of distributed and concurrent systems. This background is shared by all our research areas.

Formal models of concurrency

Process calculi, bigraphical reactive systems, coalgebraic semantics and behavioural equivalences.

Types and logics

Type theory, categorical semantics and proof assistants for certified reasoning about programs.

Coordination

Languages and strategies for coordinating distributed, autonomous components, including transactions and choreographies.

Security protocols

Verification of security properties of authentication and communication protocols.

Embedded & IoT

Engineering techniques to implement trustworthy systems on constrained and embedded devices.

Industrial collaboration

Joint projects with companies on testing, vulnerability assessment and secure system design.