Research

We develop methods and tools to make complex software systems easier to design, analyse, and test. Our work connects formal methods with software engineering: we use precise models to describe how a system should behave, then check those models and the software built from them against its requirements.

Modelling and software architecture

We use model-driven engineering, UML-based languages, software architecture descriptions, and Abstract State Machines to represent the behaviour and structure of a system before implementation. These models help us make requirements precise, explore design choices, and connect specifications to executable software. ASMETA brings together tools for working with Abstract State Machine models throughout this process.

Validation and verification

We examine whether models and implementations behave as intended through simulation, scenario-based validation, and model checking. We also study how to analyse systems built from interacting components and how to monitor important properties while a system is running. This work helps identify design errors and assess the effect of changes before they reach deployed software.

Software testing

We develop model-based, combinatorial, and search-based testing techniques to generate useful test cases and reveal failures. Our work covers state-based systems, software product lines whose features evolve, and controllers described in simulation environments. We also evaluate test effectiveness and look for ways to keep tests reliable as models and requirements change.

Dependable and data-driven systems

We apply these methods to cyber-physical systems, autonomous behaviour, and medical software, where faults can affect safety. We analyse failures, check whether software updates preserve required behaviour, and use models to enforce safety constraints at runtime. We also investigate how language models can assist formal specification and how to validate data used by software when real-world datasets are limited.

Application domains

Our case studies include autonomous vehicles, drones, e-bikes, medical devices, and self-adaptive systems.

Meet our group, explore our projects and industry collaborations, read our publications, and discover our tools.

Search FOSELAB