L'Ingénierie Dirigée par les Modèles (IDM) est un domaine de recherche en pleine émergence qui considère les modèles comme des éléments de base. Chaque modèle est conforme à un autre modèle, appelé son méta-modèle, qui définit sa syntaxe abstraite et ses concepts. Dans un processus IDM, différents types de modèles sont manipulés par des transformations de modèles. Une transformation génère un modèle dans un langage cible à partir d'un modèle dans un langage source. Pour concevoir une transformation, les développeurs doivent avoir une bonne connaissance des méta-modèles concernés ainsi que des langages de transformation, ce qui rend cette tâche difficile. Dans cette thèse, nous proposons d'assister l'écriture des transformations et plus généralement de comprendre comment une transformation opère. Nous adhérons à l'approche de transformation de modèles par l'exemple qui propose de créer une transformation de modèles à partir d'exemples de transformation. Cela permet d'utiliser la syntaxe concrète définie pour les méta-modèles, et cela évite donc de requérir que les développeurs aient une bonne maîtrise des méta-modèles utilisés. Dans ce contexte, nous proposons deux contributions. La première consiste à définir une méthode pour générer des règles de transformation opérationnelles à partir d'exemples. Nous nous basons sur une approche qui utilise l'Analyse Relationnelle de Concepts (ARC) comme technique d'apprentissage pour obtenir des patrons de transformation à partir d'un appariement de type 1-1 entre les modèles. Nous développons une technique pour extraire des règles de transformation opérationnelles à partir de ces patrons. Ensuite, nous utilisons le langage et le moteur de règles JESS pour exécuter ces règles. Nous étudions aussi comment mieux apprendre des règles de transformations à partir d'exemples, en utilisant séparément chaque exemple ou en réunissant tous les exemples. La deuxième contribution consiste à récupérer les traces de transformation à partir d'exemples de transformation. Ces traces peuvent être utilisées par exemple pour localiser des erreurs durant l'exécution des programmes de transformation ou vérifier la couverture de tous les modèles d'entrée par une transformation. Dans notre contexte, nous supposons que ces traces vont servir pour un futur apprentissage des règles de transformation. Nous traitons tout d'abord le problème de récupération des traces avec des exemples provenant d'un programme de transformation. Nous proposons une approche basée sur une méta-heuristique multi-objectifs pour générer des traces sous forme d'appariement de type n-m entre des éléments de modèles. La fonction objectif s'appuie sur une similarité lexicale et structurelle entre ces éléments. Une extension de cette méthode est proposée pour traiter le problème plus général de l'appariement entre modèles. / Model Driven Engineering (MDE) considers models as first class artifacts. Each model conforms to another model, called its metamodel which defines its abstract syntax and its semantics.Various kinds of models are handled successively in an MDE development cycle. They are manipulated using, among others, programs called model transformations. A transformation takes as input a model in a source language and produces a model in a target language. The developers of a transformation must have a strong knowledge about the source and target metamodels which are involved and about the model transformation language. This makes the writing of the model transformation difficult.In this thesis, we address the problem of assisting the writing of a model transformation and more generally of understanding how a transformation operates.We adhere to the Model Transformation By example (MTBE) approach, which proposes to create a model transformation using examples of transformation. MTBE allows us to use the concrete syntaxes defined for the metamodels. Hence, the developers do not need in-depth knowledge about the metamodels. In this context, our thesis proposes two contributions.As a first contribution, we define a method to generate operational transformation rules from transformation examples. We extend a previous approach which uses Relational Concept Analysis as a learning technique for obtaining transformation patterns from 1-1 mapping between models. We develop a technique for extracting relevant transformation rules from these transformation patterns and we use JESS language and engine to make the rules executable. We also study how we better learn transformation rules from examples, using transformation examples separately or by gathering all the examples.The second contribution consists in recovering transformation traces from transformation examples. This trace recovery is useful for several purposes as locating bugs during the execution of transformation programs, or checking the coverage of all input models by a transformation. In our context, we expect also that this trace will provide data for a future model transformation learning technique. We first address the trace recovery problem with examples coming from a transformation program. We propose an approach, based on a multi-objective meta-heuristic, to generate the textit{many-to-many} mapping between model constructs which correspond to a trace. The fitness functions rely on the lexical and structure similarity between the constructs. We also refine the approach to apply it to the more general problem of model matching.
Identifer | oai:union.ndltd.org:theses.fr/2013MON20223 |
Date | 04 December 2013 |
Creators | Saada, Hajer |
Contributors | Montpellier 2, Huchard, Marianne, Sahraoui, Houari A., Nebut, Clémentine |
Source Sets | Dépôt national des thèses électroniques françaises |
Language | English |
Detected Language | French |
Type | Electronic Thesis or Dissertation, Text |
Page generated in 0.0015 seconds