2411 articles – 24 Notices  [english version]
Fiche détaillée Thèses
Université Joseph-Fourier - Grenoble I (22/12/2008), Jacky Estublier (Dir.)
Liste des fichiers attachés à ce document : 
PDF
Thesis.pdf(2.7 MB)
Codèle : Une Approche de Composition de Modèles pour la Construction de Systèmes à Grande Échelle
Thi Thanh Tam Nguyen1

Depuis "toujours", en Génie Logiciel comme dans toutes les ingénieries, afin réduire la complexité et pour améliorer la réutilisation, le produit à construire est divisé en parties construites indépendamment et ensuite assemblées. L'approche récente de l'Ingénierie Dirigée par les Modèles (IDM, ou MDE pour Model-Driven Engineering), fait de même, en proposant "simplement" que les parties à construire et à assembler soient des modèles et non pas des programmes. C'est ainsi que le problème de la composition de modèles est devenu un thème important de l'IDM, et le sujet de cette thèse. En effet, un système logiciel réel est bien trop complexe pour pouvoir être décrit par un seul modèle. De nombreux modèles devront être créés pour le spécifier, soit à divers niveaux d'abstraction, soit selon divers points de vue, soit encore selon des domaines fonctionnels differents et complémentaires. Dans ce travail, nous partons de l'hypothèse que de tels domaines métiers existent. Un domaine est un champ d'expertise avec 1) les savoir-faire et les connaissances capturés et formalisés sous la forme d'un langage de modélisation dédié au domaine (un Domain-Specific Modeling Language (DSML)), et 2) des outils et des environnements supportant le développement d'applications dans ce domaine. Une application, dans un domaine, est décrite par un modèle (conforme au métamodèle du domaine). Dans ce travail, nous faisons aussi l'hypothèse que ces domaines sont exécutables ; les modèles du domaine sont exécutés par une machine virtuelle du domaine. En IDM, comme dans les autres approches du Génie Logiciel, la réutilisation impose que le processus d'assemblage des parties puisse se faire sans avoir à modifier celles-ci, ni bien sur l'environnement qui les a produit ou qui les exécute. Appliqué à notre contexte, cela signifie qu'il faut être capable de composer des modèles sans les modifier et sans modifier ni l'éditeur ni la machine virtuelle du domaine dont ils sont issus. C'est le problème que nous abordons dans notre travail. Nous montrons que pour atteindre cet objectif, il faut d'abord composer les domaines c'est à dire composer leurs métamodèles et leurs machines virtuelles, puis les modèles. Nous montrons dans ce travail comment ces compositions peuvent être réalisées sans modifier les éléments compos és, en utilisant des relations dites horizontales entre les métamodèles, et des liens entre les modèles. Cette approche est validée d'abord par la réalisation d'un certain nombre de domaines composites, et par de nombreuses compositions de modèles opérationnelles. Une partie importante du travail a consisté à définir Codèle, un langage de composition de modèles et de métamodèles, et à réaliser l'environnement d'assistance correspondant. Codèle assiste les ingénieurs pour composer de façon systématique les domaines, et rend automatique ou semi-automatique la composition de tous modèles provenant de ces domaines. Nous présentons l'outil Codèle et nous évaluons son usage dans divers projets.
1 :  LIG Laboratoire d'Informatique de Grenoble - ADELE
Ingénierie dirigée par les modèles – composition de modèles – composition de métamodèles – modèles exécutables – langages de modélisation dédiés aux domaines – développement d'applications à grande échelle – Codèle

Codèle : An Model Composition Approach for Large-Scale System Engineering
Since "always", in Software Engineering as in all other engineering fields, the product to be built is divided into parts that are independently built and subsequently assembled. This procedure reduces the complexity and improves the reusability of the products built. Model-Driven Engineering (MDE) is a recent engineering initiative that adopts this approach. MDE "simply" proposes that the parts to be built and assembled be models rather than software programs. In this context, the problem of model composition has become an important theme in the MDE domain and constitutes the subject of this thesis. Indeed, a real software system is much too complex to be described in a single model. Multiple models should be created for the system specification. Such models could represent different system abstraction levels, different system view-points, or different and complementary functional domains. In the presented work, we start from the hypothesis that such application domains do exist. A certain domain is a specialised field containing: 1) the know-how and the knowledge captured and formalised via a Domain-Specific Modeling Language (DSML); and 2) tools and environments for supporting the development of applications in the corresponding domain. In a certain domain, an application is described via a model (that conforms to the domain-specific meta-model). In the presented work, we also make the hypothesis that the considered domains are executable - the domain's models are executed by a domain-specific virtual machine. In MDE, as in all other Software Engineering approaches, reutilisation imposes that the assembly process can be performed without having to modify the parts concerned or their production or execution environment. In our context, this means that model composition must be possible without modifying the concerned models and their domain-specific development editor and virtual machine. This is the problem that our work addresses. We show that for reaching this goal we must first compose the concerned domains and then their specific models. In other words, we must first compose the domains' meta-models and virtual machines. In this work, we show how such compositions can be performed without modifying the composed elements, by using horizontal relations between the meta-models and links between the models. This approach is validated via the creation of several composed domains and numerous composed functional models. An important part of this work consisted in defining Codèle - a model and meta-model composition language, and providing the corresponding support environment. Codèle assists engineers in performing system compositions in a systematic manner and renders automatic or semi-automatic all model composition in these domains. We present the Codèle tool and we evaluate its use in various projects.
Model Driven Engineering – model composition – meta-model composition – executable models – domain-specic modelling languages – large-scale application development – Codèle