IA générative pour l'ingénierie dirigiée par les modéles

L'IA générative et les grands modèles de langage (LLM), tels que Copilot et ChatGPT, peuvent compléter le code à partir de fragments initiaux écrits par un développeur. Ils sont intégrés dans des environnements de développement de logiciels tels que VS code. De nombreux articles analysent les avantages et les limites de ces approches pour la génération de code. Malgré quelques lacunes, le code produit est souvent correct et les résultats s'améliorent.

Cependant, une quantité étonnamment faible de travaux a été réalisée dans le contexte de la modélisation des logiciels. L'article de Cámara et al. conclut que si les performances des LLM actuels pour la modélisation de logiciels sont encore limitées (contrairement à la génération de code), il est nécessaire (contrairement à la génération de code) d'adapter nos pratiques d'ingénierie basées sur les modèles à ces nouveaux assistants et de les intégrer dans les méthodes et outils MBSE.

L'objectif de ce post-doc est d'explorer l'IA générative dans le contexte de la modélisation des systèmes et des outils associés. Par exemple, l'assistance de l'IA peut soutenir l'achèvement, la refactorisation et l'analyse (par exemple les modèles de conception identifiés ou les anti-modèles) au niveau du modèle. Les propositions sont discutées au sein de l'équipe et, dans un deuxième temps, le mécanisme est prototypé et évalué dans le contexte du modeleur UML open-source Papyrus.

Hybridation de LLMs pour l’ingénierie des exigences

Le développement de systèmes physique ou numériques est un processus complexe mêlant des défis techniques et humains. La première étape consiste à donner corps aux idées en rédigeant des spécifications ou un cahier des charges du système en devenir. Généralement écrits en langage naturel par des analystes fonctionnels (business analysts), ces documents sont des pièces maîtresses qui lient toutes les parties prenantes pendant toute la durée du projet et facilite le partage et la compréhension de ce qu’il faut faire. L’ingénierie des exigences propose diverses techniques (revues, modélisation, formalisation, etc.) pour réguler ce processus et améliorer la qualité (cohérence, complétude, etc.) des exigences produites, dans le but de détecter et corriger les défauts avant même l’implémentation du système.
Dans le domaine de l’ingénierie des exigences, l’arrivée récente des réseaux de neurones à très grands modèles (LLM) a la capacité de « changer la donne » [4]. Nous proposons de soutenir le travail de l’analyste fonctionnel avec un outil qui facilite et fiabilise la rédaction du référentiel d'exigences. L’outil exploitera un agent conversationnel de type transformeur/LLM (tels que ChatGPT ou Lama) combiné à des méthodes rigoureuses d'analyse et de conseil. Il proposera des options de réécriture des exigences dans un format compatible avec les normes INCOSE ou EARS, analysera les résultats produits par le LLM, et fournira un audit de qualité des exigences.

Sûreté et assurance des systèmes basés Intelligence Artificielle

Le poste est lié à l’évaluation de la sûreté et à l’assurance des systèmes basé IA (Intelligence Artificielle). Actuellement, pour un système n’utilisant pas des composants d’apprentissage automatique, la sûreté fonctionnelle est évaluée avant le déploiement du système et les résultats de cette évaluation sont compilés dans un dossier de sécurité qui reste valable pendant toute la durée de vie du système. Pour les nouveaux systèmes intégrant des composants d’IA, en particulier les systèmes auto-apprenants, une telle approche d’ingénierie et d’assurance n’est pas applicable car le système peut présenter un nouveau comportement face à des situations inconnues pendant son fonctionnement.

L’objectif du post-doc sera de définir une approche d’ingénierie pour effectuer une évaluation de la sûreté des systèmes basés IA. Un deuxième objectif est de définir les artefacts du dossier d’assurance (objectifs, preuves, etc.) pour obtenir et préserver une confiance justifiée dans la sûreté du système tout au long de sa durée de vie, en particulier pour les systèmes basés IA à apprentissage opérationnel. L’approche sera mise en œuvre dans un framework open-source qui sera évaluée sur des applications industrielles.

Le titulaire du poste rejoindra une équipe de recherche et développement dans un environnement très stimulant avec des opportunités uniques de développer un solide portefeuille technique et de recherche. Il devra collaborer avec des partenaires académiques et industriels, contribuer et gérer des projets nationaux et européens, préparer et soumettre du matériel scientifique pour publication, fournir des conseils aux doctorants.

Application d’une approche IDM à la planification basée sur l’IA pour les systèmes robotiques et autonomes

La complexité de la robotique et des systèmes autonomes ne peut être gérée qu’avec des architectures logicielles bien conçues et des chaînes d’outils intégrées qui supportent l’ensemble du processus de développement. L’ingénierie dirigée par les modèles (IDM) est une approche qui permet aux développeurs de la robotique et des systèmes autonomes de passer d’un paradigme centré implémentation à un paradigme centré connaissances du domaine ce qui permet d’améliorer l’efficacité, la flexibilité et la séparation des préoccupations des différents acteurs du développement de ce type de système. L’un des principaux objectifs des approches IDM est d’être intégré aux infrastructures de développement disponibles de la communauté robotique et systèmes autonomes, telles que le middleware ROS, ROSPlan pour la planification des tâches robotiques, BehaviorTree.CPP pour leur exécution et suivi et Gazebo pour la simulation.
L’objectif de ce postdoc est d’étudier et de développer des architectures logicielles modulaires, composables et prédictibles ainsi que des outils de conception interopérables basés sur des approches basées sur des modèles, au lieu d’être centrées sur le code. Le travail sera réalisé dans le cadre de projets européens tels que RobMoSys (www.robmosys.eu), ainsi que dans d’autres initiatives pour les systèmes robotiques et autonomes sur la planification des tâches basée sur l’IA et leur exécution. Le principal objectif est de réduire les efforts des ingénieurs et de permettre ainsi le développement de systèmes robotiques autonomes plus avancés et plus complexes à un coût abordable. Pour ce faire, le post-doctorant contribuera à la mise en place et à la consolidation d’un écosystème, d’une chaîne d’outils et d’une communauté dynamique qui offriront un cadre unifié de conception, de planification et simulation, d’évaluation de la sécurité et un environnement formel de validation et de vérification.

Application de l’ingénierie des ontologies et des connaissances à l’ingénierie de systèmes complexes

L’ingénierie système basée sur les modèles repose sur l’utilisation de diverses descriptions formelles du système pour effectuer des prévisions, des analyses, des automatisations, des simulations, etc. Cependant, ces descriptions sont principalement réparties dans des silos hétérogènes. L’analyse et l’exploitation de l’information sont confinées à leurs silos et manquent ainsi la vue d’ensemble. Les informations et idées transversales restent cachées.
Pour résoudre ce problème, les ontologies et les techniques d’ingénierie des connaissances offrent des solutions souhaitables reconnues par les travaux universitaires. Ces techniques et paradigmes aident notamment à donner accès à un jumeau numérique complet du système grâce à leurs capacités de fédération, à donner un sens à l’information en l’intégrant aux connaissances formelles existantes et à explorer et découvrir des incohérences grâce aux capacités de raisonnement.
L’objectif de ce travail sera de proposer une approche donnant accès à un jumeau numérique complet fédéré avec les technologies d’ingénierie de la connaissance. Les opportunités et les limites de l’approche seront évaluées sur des cas d’utilisation industrielle.

Maitrise et gestion de l’évolution des modèles

La conception de systèmes de plus en plus complexes nécessite de mettre en place de nouveaux paradigmes pour faire face à tous les nouveaux défis soulevé comme par exemple améliorer la sureté et la sécurité des systèmes, tout en réduisant les temps et le coût de mise sur le marché. Les paradigmes promus par l’ingénierie des modèles, principalement les notions de modèles actifs et de transformations de modèles, sont des solutions efficaces pour traiter de ces questions. Toutefois, tel que souligné par les travaux présentés dans la série d’ateliers internationaux sur les modèle et l’évolution (www.modse.fr), l’évolution des modèles, voire la coévolution des modèles, et la gestion de la cohérence entre les modèles deviennent alors des activités cruciales pour faire face aux changements naturels de tout système. En fait, il y a un besoin croissant pour des techniques plus disciplinés et des outils d’ingénierie sous-jacent pour résoudre les problèmes liés à l’évolution des modèles, comme par exemple, l’évolution du système guidé par le modèle, la différence de modèles, la comparaison des modèles, le refactoring de modèle, la gestion des incohérences, la gestion des versions des modèles, etc.
Dans le cadre de ce projet, le LISE veux en particulier examiner les problèmes liés à l’évolution des modèles sous les deux perspectives suivantes:
- La première question est de permettre aux modeleurs de gérer l’évolution de leurs modèles. On devrait être en mesure de suivre les changements qui ont été effectués dans un modèle en fournissant par exemple un mode de "suivi des modifications" dans l’environnement de modélisation.
- La deuxième question concerne le problème de la gestion des versions du modèle. Les utilisateurs ont besoin ici pour gérer et utiliser plusieurs versions de leurs modèles dans un esprit de collaboration.

Test d’intégration à base d’exécution symbolique pour les systèmes à base de composants

Le sujet concerne la mise en place de techniques de test pour les systèmes à base de composants logiciels. L’objectif est de maîtriser l’explosion combinatoire souvent subie à la phase de génération de test pour de tels systèmes. L’idée directrice des travaux est de tirer partie de la définition récursive des systèmes pour découper la phase de génération de test en plusieurs phases concernant, les composants d’une part, et les mécanismes de communication entre composants d’autre part, dans une logique "diviser pour régner" qui est classique en informatique. Le candidat se basera sur des travaux réalisé dans le laboratoire autour de techniques à base d’exécution symbolique pour la génération de test et l’analyse de comportement.

Interprétation Abstraite d’annotations ACSL

Frama-C est un ensemble d’outils pour l’analyse de logiciels C. Dans Frama-C, différentes techniques d’analyse peuvent être implémentées comme plug-ins (greffons) dans un même cadre. La collaboration entre plug-ins repose en partie sur le langage commun de spécification ACSL. Chaque plug-in est supposé interpréter ACSL au mieux de ses possibilités.

Ce post-doctorat consiste à améliorer la précision de l’analyse de valeurs, basée sur la technique d’Interprétation Abstraite, de Frama-C, pour les constructions qui ne sont pas actuellement traitées. Le traitement de certaines constructions nécessitera la conception d’un ou plusieurs domaines abstraits spécifiques.

http://frama-c.com

http://frama-c.com/value.html

http://frama-c.com/acsl.html

Top