My Research


My work in 150 words

Computer systems have seen a tremendous growth in their complexity since their invention, about half a century ago. It becomes increasingly difficult to foresee all their possible executions and to identify all the errors they can cause. The classical approach used by most developers is to run a system through a batch of tests —a time-consuming, and ultimately imperfect method, since after all, one can never test everything.

My work consists of developing automated methods, based on mathematics, to verify computer systems of various kinds. In a nutshell, the expected behaviour of a system can be described as a set of equations. Given such a specification, one then attempts to monitor, or even to prove that a system never strays away from what the formulas stipulate. Despite the seemingly abstract nature of my work, I applied these concepts in domains ranging from network device configuration to video game debugging and web application development. Many of these projects have been conducted in partnership with companies.

Current research projects

Depending on their project, students doing research with me are exposed to concepts and technologies in web programming, databases, computer networks, software engineering and, of cours, mathematics.

One can observe all the events produced by a system during its execution, creating a record we call a trace or a log. It is then possible to analyze that trace and look for events, or sequences of events that could hint at a malfunction of the system: this is called trace validation or log analysis.

Sometimes, computer scientists are impatient and do not want to wait until a system finishes its execution to analyze the trace. An alternate approach is to insert an observer into the system while it is running, and to block or report all events that violate the expected specification: this is called runtime monitoring.

On the contrary, one sometimes accepts to wait for a result, to make sure that all possible executions of a system satisfy the requirements. It is sometimes possible to completely and automatically verify this, a process called model checking.

Collaborating companies

I conducted research, development and consulting projects in partnership with the following companies:

Research funds

Since the start of my research carreer in 2010, I have earned by means of competition more than $ 610,000 in research funds, either alone or through partnerships. Most of these funds come from federal and provincial funding agencies, notably the Natural Sciences and Engineering Research Council of Canada (NSERC) and the Fonds de recherche Québec -- Nature et technologies (FRQNT).


Since my start as a professor at UQAC in 2010, I have supervised 11 M.Sc. students and 1 Ph.D. student, in addition to a number of short-term internships, both graduate and undergraduate.

Prospective student? Please first read my advice (in French) and do not hesitate to contact me.

Current students

Former students