> Offres de formation > Offres de thèses

Récupération des modèles de haut niveau assistée à partir de code source

Défi technologique : Data intelligence dont Intelligence Artificielle (en savoir +)

Département : Département Ingénierie Logiciels et Systèmes (LIST)

Laboratoire : Labo.conception des systèmes embarqués et autonomes

Date de début : 01-11-2022

Localisation : Saclay

Code CEA : SL-DRT-23-0080

Contact : marcos.didonetdelfabro@cea.fr

Papyrus SW designer prend en charge la génération de code à partir de modèles UML et de mécanismes de rétro-ingénierie pour créer des modèles à partir de code existant. L'outil permet la modélisation basée sur les composants et les machines d'état. Comme la plupart des langages de programmation ne prennent pas en charge ces concepts, ils doivent être mappés au langage de programmation, ce qui réduit le niveau d'abstraction. Afin de prendre en charge ces fonctionnalités, SW designer contient des transformations de modèle à modèle qui ajoutent des artefacts d'implémentation, par exemple des attributs et des méthodes pour la mise en file d'attente et la répartition des événements dans le cas d'une machine à états. L'approche de transformation M2M fonctionne bien pour la génération de code. Cependant, le résultat d'une étape de rétro-ingénierie est un modèle d'implémentation : au lieu d'obtenir une machine à états, le modèle inversé contient les artefacts d'implémentation d'une machine à états. Afin d'obtenir le modèle d'origine, les transformations de modèle à modèle doivent être inversées. Indépendamment d'une mise en ?uvre concrète, il n'est pas évident que les transformations soient réversibles. Par exemple, tout le code de traitement d'événements n'appartient pas à une machine d'état. Par conséquent, la transformation ne peut pas perdre d'informations (bijectif). Un autre aspect consiste à trouver une manière appropriée de spécifier et de mettre en ?uvre la transformation. Nous pouvons soit essayer d'utiliser une spécification unique d'une transformation bidirectionnelle, soit accepter de spécifier une transformation distincte pour chaque direction. Ce dernier semble dupliquer la spécification, mais la détection de modèle est une tâche assez différente de la génération d'un modèle, notamment depuis que l'ingénierie inverse est généralement appliquée à des modèles qui n'ont pas été créés à partir d'un modèle ou qui ont divergé du modèle depuis la dernière génération de code. . Ainsi, nous devons analyser un code qui utilise probablement des modèles d'implémentation pour des concepts de niveau supérieur, mais nous ne savons pas à l'avance quels modèles sont appliqués ou s'ils ont été appliqués de manière systématique. L'objectif de cette thèse est d'analyser l'état de l'art ainsi que de proposer et d'évaluer des alternatives.

Voir toutes nos offres Télécharger l'offre (.zip)

Email Bookmark and Share