Mes recherches

English

Mon travail en 150 mots

Depuis leur création il y a environ un demi-siècle, les systèmes informatiques ont connu une croissance fulgurante de leur complexité. Il devient de plus en plus difficile de prévoir toutes leurs exécutions possibles et de retracer toutes les erreurs qu'ils peuvent causer. L'approche classique, qui consiste à faire passer un produit à travers une batterie de tests, demande beaucoup de travail manuel et ne sera jamais parfaite: après tout, on ne peut pas tout tester!

Mon travail consiste à développer des méthodes de vérification automatique de systèmes informatiques basées sur les mathématiques. En gros, le comportement attendu d’un système peut être décrit au moyen d'équations. Muni d’une telle spécification, je tente par différents moyens de surveiller, voire de démontrer qu'un programme donné ne dévie pas de ce que les formules exigent. Malgré leur aspect abstrait, j'ai appliqué mes travaux à des domaines aussi variés que la configuration d'équipements réseau, le débogage des jeux vidéo et le développement d'applications web —souvent en partenariat avec des entreprises.

La ligne de front

Selon les projets, les étudiants qui travaillent à mes recherches sont exposés à des concepts de programmation web, de bases de données, de réseaux informatiques, de génie logiciel, et bien sûr de mathématiques.

On peut enregistrer tous les événements produits par un système durant son exécution sur une "bande" qu'on appelle une trace ou un log. On peut ensuite chercher dans cette trace des événements ou des séquences d'événements qui pourraient révéler un mauvais fonctionnement du système, c'est la validation de traces.

Quelquefois, les informaticiens sont impatients et ne veulent pas attendre que le système ait fini de s'exécuter avant d'analyser sa trace: on veut détecter les problèmes tout de suite! Une approche alternative superpose un petit observateur sur le système pendant qu’il s’exécute, et bloque toutes les actions qui violent la spécification attendue: c’est le runtime monitoring.

Au contraire, on préfère parfois attendre pour obtenir la garantie que toutes les exécutions possibles de notre système satisfont nos exigences. Il est parfois possible de le vérifier complètement et automatiquement: c'est ce qu'on appelle le model checking.

Entreprises partenaires

J'ai réalisé des projets de recherche, de développement ou de consultation en collaboration avec les entreprises suivantes:

Fonds de recherche

Depuis le début de ma carrière en 2010, j'ai obtenu par voie de concours plus de 610 000 $ en fonds de recherche, seul ou à travers des projets en partenariat. La majorité de ces fonds proviennent des organismes subventionnaires gouvernementaux, en particulier le Conseil de recherche en sciences et en génie du Canada (CRSNG) et le Fonds de recherche Québec -- Nature et technologies (FRQNT).

Étudiants

Depuis mon arrivée comme professeur à l'UQAC en 2010, j'ai supervisé 11 étudiants de niveau maîtrise et 2 étudiant au doctorat, en plus de stages de courte durée pour des étudiants de premier et deuxième cycle.

Vous êtes un étudiant potentiel? Lisez d'abord mes conseils, consultez la liste des projets où je recrute présentement et n'hésitez pas à me contacter.

Étudiants que je dirige actuellement

Anciens étudiants

Navigation