Michael's main research area is formal methods for software engineering. These are mathematical modeling and analysis methods used to increase the trustworthiness of software based systems. They are typically used for high integrity systems where software-induced failures would lead to loss of life or significant loss of business or reputation. He specialises in model-based formal methods, in particular a formal method called Event-B. His research work encompasses applications, tools and methodology for formal methods. He has made key theoretical and methodological contributions to the Event-B formal method that enable it to scale to large complex systems. These contributions enable modular analysis in terms of how systems models are structured and analysed as well as methods for development of domain-specific mathematical theories that are reusable across multiple projects.