Résultats scientifiques

Modélisation et test de systèmes logiciels

Les recherches en modélisation portent principalement sur l'intégration de modèles graphiques et formels, qui est à l'origine de l'outil Meeduse, et l'inférence de modèles, où l’équipe propose de nouveaux algorithmes pour inférer des modèles à partir de traces d'exécution.

Des travaux s’intéressent aussi aux interactions possibles entre le Génie Logiciel et l'Intelligence Artificielle. Ces deux domaines étaient au cœur du projet ANR Philae. Plus récemment, nous nous sommes intéressés à l'utilisation de LLMs pour générer du code ou des tests.

Inférence de modèles

Depuis de nombreuses années l'équipe travaille sur l'inférence active de modèles, qui consiste à découvrir le comportement d'un système, vu comme une boîte noire, en le testant c’est-à-dire en lui soumettant des entrées et en observant ses sorties. En collaboration avec Alexandre Petrenko (CRIM), nous avons conçu un algorithme basé sur la résolution de contraintes pour inférer des modèles sans qu'il soit nécessaire de réinitialiser le système [J23]. Malheureusement, cet algorithme est trop coûteux pour être utilisé pour inférer des automates à plus d'une douzaine d’états.

Nous avons également travaillé, en collaboration avec Adenilso Simao de l’Université de São Paulo, sur un autre algorithme d'inférence active de modèle, sans réinitialisation, appelé hW [C12, C42, J20, C68]. Cet algorithme constitue une avancée significative, car il permet d'inférer des automates comportant jusqu’à 3000 états.

L'équipe VASCO a démarré en 2022 une collaboration tri-partite avec l'Université de Sheffield (Neil Walkinshaw, Michael Foster) en poursuite de celle avec l'Université de São Paulo (Adenilso Simao), toujours sur l’inférence active de modèles sans réinitialisation. Le défi de cette recherche réside dans le fait qu'on cherche à inférer des modèles riches (automates de Mealy étendus avec des entrées et sorties paramétrées, des gardes et des registres), Turing-complets, alors que les approches de l'état de l'art restent cantonnées à des formes d’automates plus restrictives. En combinant les travaux de Sheffield sur l'inférence passive pour des modèles incluant des fonctions de calcul arbitraires avec l'approche d'inférence active d'automates d'états finis sans réinitialisation de Grenoble et São Paulo, nous avons obtenu des résultats très encourageants (et progressivement de plus en plus puissants) qui ont donné lieu à plusieurs publications [1, C14, C16].

Meeduse : un environnement formel de création de DSLs

Le quinquennal a été marqué par le développement de Meeduse [J18], un environnement de conception de langages qui permet de définir formellement, au moyen de la méthode B, la sémantique d’un DSL (Domain-Specific Language). Meeduse fournit un ensemble de plugins pour le débogage et la vérification de DSLs, qui reposent sur l'animateur et model-checker ProB. Des efforts importants sont poursuivis autour du développement et de la maturation de l'environnement Meeduse, et ce, dans trois directions majeures :
  1. application sur des langages et des études de cas réalistes,
  2. coordination de DSLs, et
  3. exploitation d'autres cibles formelles en complément de la méthode B.

Applications de l'environnement Meeduse : Les travaux menés dans ce cadre ont montré que l'outil passe à l'échelle et permet de contribuer à des domaines variés au travers de l'intégration du raisonnement formel et de DSLs. On peut citer :

Autres cibles formelles

Ces travaux visent à utiliser le langage LNT et la boite à outils CADP, développés par l'équipe CONVECS du LIG, comme back-end de Meeduse. Les résultats obtenus à ce jour sont prometteurs. Ceci a été réalisé grâce au travail de L. Muller recrutée en tant que post-doctorante, et ensuite ATER dans le cadre d'une collaboration entre les équipes VASCO, Sigma et CONVECS.

Outre ces travaux sur Meeduse, l'équipe VASCO a poursuivi ses travaux sur l'intégration de méthodes graphiques et formelles. Dans ce cadre, l'article [C15] propose l'utilisation du langage CSP au sein de la plate-forme B4MSecure et son application à des problèmes de contrôle d’accès.

Génie Logiciel et Intelligence Artificielle

Une forte montée en compétence dans le domaine de l'Intelligence Artificielle a permis d'aborder deux types de questions de recherches :

  1. Comment l'IA peut-elle être intégrée aux pratiques de Génie Logiciel ?
  2. Comment le Génie Logiciel peut-il prendre en compte des systèmes qui contiennent une part d'IA ?

De l'IA au service du Génie Logiciel

Le projet ANR PHILAE s'est terminé au début de ce quinquennal. L'équipe VASCO y a utilisé l'apprentissage machine pour prédire la prochaine occurence de bugs. Elle a également utilisé des techniques d'encodage propres au traitement de la langue naturelle pour regrouper des traces d'exécution en utilisant des algorithmes de clustering.

Plus récemment, nous avons utilisé l'IA générative pour produire des tests logiciels. La question naturelle qui se pose est d'évaluer et de maîtriser la qualité des tests ainsi produits. L'équipe VASCO a donc démarré un travail sur ce thème en 2024, sous la forme de stages de TER (Travaux d'Etude et de Recherche), puis d’un projet Émergence. Ces travaux étudient la possibilité de piloter la génération des tests par une mesure de couverture.

Nicolas Hili a poursuivi ses travaux autour de l'Intelligence Artificielle pour la conception de modèles d'ingénierie système, originellement menés à l'IRT Saint Exupéry à Toulouse. Ces travaux ont donné lieu en 2020 à la création d’un assistant intelligent intégré dans un outil de modélisation sur écran tactile. Cet outil, nommé BOARD-AI, permet de concevoir des modèles (d'ingénierie systèmes, mais aussi de génie logiciel), en s'appuyant sur la combinaison de techniques d'intelligence artificielle symbolique et statistique. Durant ces travaux, un chapitre de livre [C41] et un article de journal [J9] ont été écrits. Cela a permis, d'une part de continuer la collaboration avec l'IRT Saint Exupéry, et d'autre part d'entamer des collaborations avec l'Onera DTIS à Toulouse, l'IRIT à Toulouse, et en interne avec l'équipe M-PSI de l’axe “Systèmes Interactifs et Cognitifs” du LIG. Ces travaux ont également donné lieu à deux dépôts APP, le premier portant sur l'éditeur, le second sur l'assistant intégré dans l’éditeur.

En 2024, un autre projet Émergence a permis de financer le stage d'un étudiant en double diplôme entre les universités KIT en Allemagne et l'ENSIMAG en France. Cette supervision a été réalisée entre l'équipe VASCO et l'équipe Getalp du LIG. Les travaux réalisés ont été très encourageants et ont été présentés lors du workshop LowCode [C2]. Durant ces travaux, nous avons étendu une plate-forme Low-code [C31] dont le développement avait démarré en 2020 au sein de l’axe GLSI. Cette plate-forme a été étendue avec des capacités conversationnelles offertes par la nouvelle génération de LLM afin de comprendre l'intention d'un expert de domaine et de produire une plate-forme No-Code (par opposition à une plate-forme LowCode, sur lequel l'effort de développement sera complètement réduit à zéro) adaptée à ses besoins.

Suite à ces travaux, un projet IRGA, toujours en collaboration avec l'équipe GETALP, financé pour deux ans a vu le jour. Ces travaux seront l'occasion de consolider l'approche existante pour le développement de plates-formes No-Code, mais aussi pour la généraliser à d'autres domaines d’application.

Enfin, il est à noter que ces travaux ont permis de faire émerger trois nouvelles collaborations, dont deux internationales. La première collaboration s'effectue avec une entreprise grenobloise. Elle donnera lieu à la supervision conjointe d’une stage de fin d'étude avec pour ambition d'identifier de bons étudiants en vue du démarrage d'une thèse CIFRE. Les deux collaborations internationales portent sur l'IA générative, l'une d’entre elles est prévue avec l’université de Ulm en Allemagne, tandis que l'autre est prévue avec l'École Technique Supérieure de Montréal (ETS), démarrant à la fin de l'année 2024 et se prolongeant sur 2025.

Du génie logiciel au service de l'IA

De plus en plus de systèmes informatiques embarquent des fonctionnalités qui incluent une part d'IA ou des composants qui sont en fait des modèles construits à partir d'IA. La construction de ces composants ou de ces fonctionnalités impactent l'architecture des systèmes, le processus de développement, la validation du système, la maintenance... Il est donc important d'apporter des méthodes, des techniques et des outils de Génie Logiciel adaptés à l'émergence de l'IA au sein des systèmes informatiques.

L'équipe VASCO et l'équipe (anciennement) ADELE se sont intéressées au problème de l’architecture des systèmes logiciels comprenant une part d'IA, dans le cadre d’une collaboration avec l'Université de Kobe, au Japon. En particulier, 8 étudiants de M1 ont fait leur stage entre Grenoble et Kobe entre 2019 et 2024. Pendant ce stage ils ont cherché à identifier des patrons d’architecture pour ce type de logiciel [C57] (projet Région Kouno-Tori : Systèmes numériques pour un monde plus intelligent).

Le problème de la génération de tests est tout aussi délicat, puisque l'utilisation de composants à base d'IA peut rendre difficile la spécification du système. Ce problème est étudié dans le cadre de la collaboration avec l'Université d'Ottawa (projet Région Raven : Réseau Académique pour la VErification de systèmes Numériques). Ce problème est aussi au cœur de la future collaboration avec avec une start-up strasbourgeoise. Nous y étudierons l'utilisation de tests métamorphiques pour évaluer la non-régression.

Enfin, le problème des méthodes de conceptions se pose. Dans le cadre du PEPR ENSEMBLE, l'équipe VASCO collabore avec le laboratoire TIMC sur le thème de l'évaluation de méthodes de co-conception d’agents conversationnels. Ce travail est le thème de la thèse de Sidonie Salomé, co-encadrée par Emmanuel Montfort (TIMC) et Lydie du Bousquet.