Support de co-évolution des métamodèles et du code

Les systèmes logiciels tendent a devenir de plus en plus complexes, ce qui engendre des coûts de maintenance élevés qui dépassent souvent les coûts de développement initiaux. L’ingénierie dirigée par les modèles (IDM) s’est imposée comme une approche incontournable pour simplifier le développement et accroître la productivité. Elle repose sur l’utilisation de métamodèles pour générer divers artefacts, y compris du code, que les développeurs améliorent ensuite avec du code additionnel pour développer les différents outils linguistiques nécessaires pour un langage logiciel, par exemple un éditeur, un vérificateur, un compilateur, des couches d’accès aux données, etc. Des infrastructures logicielles tels que Eclipse Modeling Framework (EMF) illustrent ce flux de travail, en générant des API Java qui sont ensuite enrichies a des fins de validation, de débogage et de simulation. L’un des principaux enjeux de l’EDM est l’évolution du métamodèle et son impact sur les artefacts connexes. Dans cette thèse, nous nous concentrons sur l’artefact du code et sa co-évolution avec le métamodèle en évolution. En outre, nous visons a vérifier l’exactitude comportementale de la co-évolution du métamodèle et du code. Enfin, avec l’émergence des LLM, nous explorons leur utilité pour le problème de co-évolution du métamodèle et du code. Cette thèse répond a ces problèmes en : 1) en proposant une nouvelle approche de co-évolution entièrement automatisée des métamodèles et du code. Cette approche associe les erreurs de compilation a des patrons d’utilisation des éléments du métamodèle afin de sélectionner des résolutions appropriées, puis 2) en proposant une approche automatique pour vérifier que la co-évolution du code entre différentes versions n’a pas impacte son comportement lorsque son métamodèle évolue. métamodèle évolue. Cette approche s’appuie sur l’isolation d’un sous-ensembles des tests impactes avant et après la co-évolution. du code. 3) La dernière contribution concerne l’exploration de la capacité des LLM a proposer des co-évolutions correctes du code lorsque le métamodèle évolue. Cette approche est basée sur l’ingénierie des prompts, ou nous concevons et générons des prompts en langage naturel pour faire coévoluer au mieux le code impacte par l’évolution du métamodèle. Les trois contributions ont été évaluées sur des projets EMF d’OCL, Modisco et Papyrus. L’évaluation montre que notre approche automatique de co-évolution du code résout 100% des erreurs, avec 82% de précision et 81% de rappel, réduisant de manière significative l’effort manuel. De plus, notre deuxième contribution pour la vérification de la correction comportementale peut tracer et isoler avec succès les tests impactes par les changements de métamodèle représentant 5% des tests. Ensuite, après l’exécution des tests traces, la fluctuation du nombre de tests réussis, échoués ou erronés indique si la co-évolution du code est correcte ou non. L’utilisation de cette approche nous a permis de gagner 88% sur le nombre de tests total et 84% sur le temps d’exécution. Enfin, lors de l’évaluation de la capacité de ChatGPT dans la co-évolution de code, nous avons varie la valeur de la température, et la structure des prompts données. Nous avons constate que des températures plus basses donnent de meilleurs résultats avec un taux de correction de correction de 88,7%. En ce qui concerne la structure de prompts, le fait d’inclure de l’information sur lien d’abstraction de l’erreur et la réclamer des réponses alternatives améliorent les coévolutions proposées.

Publication Details

Journal
theses.fr (ABES)
Published
2025-05-15
Primary Topic
Global Trade and Competitiveness
Type
article
Field-Weighted Citation Impact
0.00
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Support de co-évolution des métamodèles et du code

theses.fr (ABES)
Global Trade and Competitiveness
article

Support de co-évolution des métamodèles et du code

article en

Abstract

Les systèmes logiciels tendent a devenir de plus en plus complexes, ce qui engendre des coûts de maintenance élevés qui dépassent souvent les coûts de développement initiaux. L’ingénierie dirigée par les modèles (IDM) s’est imposée comme une approche incontournable pour simplifier le développement et accroître la productivité. Elle repose sur l’utilisation de métamodèles pour générer divers artefacts, y compris du code, que les développeurs améliorent ensuite avec du code additionnel pour développer les différents outils linguistiques nécessaires pour un langage logiciel, par exemple un éditeur, un vérificateur, un compilateur, des couches d’accès aux données, etc. Des infrastructures logicielles tels que Eclipse Modeling Framework (EMF) illustrent ce flux de travail, en générant des API Java qui sont ensuite enrichies a des fins de validation, de débogage et de simulation. L’un des principaux enjeux de l’EDM est l’évolution du métamodèle et son impact sur les artefacts connexes. Dans cette thèse, nous nous concentrons sur l’artefact du code et sa co-évolution avec le métamodèle en évolution. En outre, nous visons a vérifier l’exactitude comportementale de la co-évolution du métamodèle et du code. Enfin, avec l’émergence des LLM, nous explorons leur utilité pour le problème de co-évolution du métamodèle et du code. Cette thèse répond a ces problèmes en : 1) en proposant une nouvelle approche de co-évolution entièrement automatisée des métamodèles et du code. Cette approche associe les erreurs de compilation a des patrons d’utilisation des éléments du métamodèle afin de sélectionner des résolutions appropriées, puis 2) en proposant une approche automatique pour vérifier que la co-évolution du code entre différentes versions n’a pas impacte son comportement lorsque son métamodèle évolue. métamodèle évolue. Cette approche s’appuie sur l’isolation d’un sous-ensembles des tests impactes avant et après la co-évolution. du code. 3) La dernière contribution concerne l’exploration de la capacité des LLM a proposer des co-évolutions correctes du code lorsque le métamodèle évolue. Cette approche est basée sur l’ingénierie des prompts, ou nous concevons et générons des prompts en langage naturel pour faire coévoluer au mieux le code impacte par l’évolution du métamodèle. Les trois contributions ont été évaluées sur des projets EMF d’OCL, Modisco et Papyrus. L’évaluation montre que notre approche automatique de co-évolution du code résout 100% des erreurs, avec 82% de précision et 81% de rappel, réduisant de manière significative l’effort manuel. De plus, notre deuxième contribution pour la vérification de la correction comportementale peut tracer et isoler avec succès les tests impactes par les changements de métamodèle représentant 5% des tests. Ensuite, après l’exécution des tests traces, la fluctuation du nombre de tests réussis, échoués ou erronés indique si la co-évolution du code est correcte ou non. L’utilisation de cette approche nous a permis de gagner 88% sur le nombre de tests total et 84% sur le temps d’exécution. Enfin, lors de l’évaluation de la capacité de ChatGPT dans la co-évolution de code, nous avons varie la valeur de la température, et la structure des prompts données. Nous avons constate que des températures plus basses donnent de meilleurs résultats avec un taux de correction de correction de 88,7%. En ce qui concerne la structure de prompts, le fait d’inclure de l’information sur lien d’abstraction de l’erreur et la réclamer des réponses alternatives améliorent les coévolutions proposées.

theses.fr (ABES)
Industry, innovation and infrastructure
Openalex Percentile: Top 36%
Global Trade and Competitiveness
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.