Introduction pratique au Développement orienté Modèle Pierre Parrend, Mars 2005



Documents pareils
openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de

Extensions à la formation. Laurent Pérochon, avril 2008, RMT Modelia, modélisation conceptuelle, formation UML, INRA Castanet Tolosan

La démarche MDA. Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)*

Analyse,, Conception des Systèmes Informatiques

Visual Paradigm Contraintes inter-associations

Ingénierie des Modèles. Méta-modélisation

Générer du code à partir d une description de haut niveau

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

Génie logiciel (Un aperçu)

CC30 Certificat de compétence Conception, développement et animation de sites Web

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Développement d un interpréteur OCL pour une machine virtuelle UML.

Environnement logiciel basé sur les modèles pour la conception collaborative de produit

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

DotNet. Plan. Les outils de développement

IFT2255 : Génie logiciel

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Projet Active Object

SITE WEB E-COMMERCE ET VENTE A DISTANCE

Etat de l art sur le développement logiciel dirigé par les modèles.

L approche Model-Driven Architecture, crédible pour développer un progiciel de

Cours en ligne Développement Java pour le web

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

RTDS G3. Emmanuel Gaudin

Projet de développement

Chapitre I : le langage UML et le processus unifié

Refonte front-office / back-office - Architecture & Conception -

MDA (Model Driven Architecture) principes et états de l art.

Vérifier la qualité de vos applications logicielle de manière continue

Méthodologies de développement de logiciels de gestion

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

Conception, architecture et urbanisation des systèmes d information

Eclipse et ses plugins de modélisation (EMF GEF GMF). Entrée en matière. par. Jacques Barzic. Avertissement

Christian Soutou UML 2. pour les. bases de données. Avec 20 exercices corrigés. Groupe Eyrolles, 2007, ISBN :

Nom de l application

Mise en œuvre des serveurs d application

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur Le 23 novembre 2012

CQP Développeur Nouvelles Technologies (DNT)

Industrialiser la chaîne complète de fabrication 1ère partie - Les bénéfices de la solution logicielle IBM VisualAge Pacbase / Rational

Objecteering. La convergence SOA, UML2, BPMN, EA, pour le développement guidé par le modèle.

Communiqué de Lancement

Université Mohamed Khider Biskra. Faculté des sciences exactes et des sciences de la nature et de la vie. Département d Informatique.

C est quoi le SWAT? Les équipes décrites par James Martin s appellent SWAT : Skilled With Advanced Tools.

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

WHITE PAPER Une revue de solution par Talend & Infosense

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

Compte Rendu d intégration d application

Architecture Reconfigurable Hétérogène à Gestion Hiérarchique Distribuée pour la Reconfiguration et la Prise de Décision

Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

TP1 : Initiation à Java et Eclipse

Meta Object Facility. Plan

Le moteur de workflow JBPM

Rational Unified Process

Description de la formation

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

TP1 : Initiation à Java et Eclipse

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Intégration d un ERP guidée par les modèles

Merise. Introduction

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Introduction MOSS 2007

analyse et pérennise votre patrimoine informationnel

PG208, Projet n 3 : Serveur HTTP évolué

Rapport de Synthèse. Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

UE 8 Systèmes d information de gestion Le programme

RAPPORT DE CONCEPTION UML :

CONCEPTION ET REALISATION D UNE APPLICATION MOBILE M-BANKING

Catalogue de Pattern pour le CSCW

SECTION 5 BANQUE DE PROJETS

Eclipse Process Framework et Telelogic Harmony/ITSW

Synergies entre Artisan Studio et outils PLM


Drive your success. «Un écosystème complexe implique une capacité de gestion temps réel des aléas»

Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM)

EXA1415 : Annotations

Génie logiciel avec UML. Notions sur le langage UML adapté pour les cours du programme Techniques de l informatique

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

BULK SMS Envoi en masse d un message texte moyennant un téléphone mobile (GSM)

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Problématiques de recherche. Figure Research Agenda for service-oriented computing

Cahier des charges (CDC)

DOSSIER SOLUTION CA ERwin Modeling. Comment gérer la complexité des données et améliorer l agilité métier?

QUELQUES ÉLÉMENTS DU DÉVELOPPEMENT LOGICIEL

Pascal Brunot Hadrien Cambazard UML FOR BUSINESS INTELLIGENCE PROJECT

Cours Bases de données

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Introduction à la modélisation

Devenez un véritable développeur web en 3 mois!

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Maîtrisez la modernisation de votre patrimoine applicatif

Information utiles. webpage : Google+ : digiusto/

Transcription:

MDA : Un Tutoriel Introduction pratique au Développement orienté Modèle Pierre Parrend, Mars 2005 1 Sommaire Table des matières 1 Sommaire 1 2 Introduction 2 2.1 A qui s adresse ce tutoriel...................... 2 2.2 Principe................................ 2 2.3 Organisation du tutoriel....................... 4 3 Du Modèle au Code 5 3.1 Installer Eclipse............................ 5 3.1.1 Installation.......................... 5 3.1.2 Prise en main......................... 5 3.2 Installer EMF............................. 6 3.3 Mon premier programe avec EMF................. 6 3.3.1 Comment ca marche?.................... 6 3.3.2 L exemple........................... 7 3.3.3 Bilan.............................. 7 4 Une autre approche de la création de modèles : les diagrammes UML 8 4.1 Installer Poseidon........................... 8 4.2 Mon premier programme avec Poseidon.............. 8 4.2.1 La modélisation UML.................... 8 4.2.2 Réalisation d un modèle complet.............. 9 4.2.3 Réalisation d un programme exécutable.......... 10 4.2.4 Bilan.............................. 10 5 La Transformation de Modèles 11 5.1 Le Principe.............................. 11 5.2 Transformation de modèles ecore.................. 11 5.3 Transformation de modèles avec ATL................ 11 6 Bilan 12 6.1 Les transformations réalisées.................... 12 6.1.1 Les Formats.......................... 12 6.1.2 Les Outils........................... 12 6.2 Outils utilisés............................. 13 7 Glossaire 14 1

2 Introduction 2.1 A qui s adresse ce tutoriel Ce tutoriel a pour vocation d être une introduction à MDA (Model Driven Architecture) par la pratique. Il vise à donner une bonne connaissance des outils utilisés dans un processus MDA, afin de permettre de mieux comprendre les problèmatiques de conception. Toute personne intéressée par MDA trouvera donc un point d entrée dans cette méthode nouvelle de conception de logiciels : développeurs, étudiants, mais aussi concepteurs qui ont besoin de savoir quels sont les outils disponibles en appui des concepts. Ce tutoriel n aborde pas ces problèmatiques de conception. Ni les aspects, nombreux, spécifiques à tel ou tel domaine d application. Et par conséquent passe sous silence des étapes telles que la conception des modèles, la création de langage spécifique à un domaine. Il s agit de montrer ce qui est possible de faire avec MDA, et certains des outils existants. Le développeur qui a besoin de ces outils pourra travailler en exploitant les différentes transformations proposées. Le concepteur qui voudra mettre en place un processus MDA pour des applications de taille conséquente pourra utiliser les informations présentes comme point de départ, qui sera utilement complété par l approfondissement du processus de conception, tel qu il est présenté par exemple sur le site web du Model- Driven Software Development : http ://www.mdsd.info 2.2 Principe Ce tutoriel est une introduction à MDA dans le cadre d un développement en langage Java. Les Outils utilisés ne sont pas les seuls existants, mais offrent un environnement de développement complet et évolutif. Ils permettent de supporter l ensemble de la chaîne de transformation MDA : modélisation UML, transformation intermédiaires, génération de code. Cette suite de transformations est illustrée par l image suivante : 2

La modélisation C est une étape préalable. Elle se fait en utilisant les outils conceptuels d UML (Unified Modeling Language). Elle aboutit à un ensemble de modèles de la future application, représentés par des diagrammes de classes. A partir de ces diagrammes de classes UML, des modèles manipulables sont générés (au format XMI). L intégration Plusieurs modèles sont utilisés pour la création d une application. Typiquement, il s agit de modèles représentant des fonctionnalités différentes. Ils sont assemblés en un seul modèle, qui représente l application, et sont à partir de là manipulables comme un unique modèle. La transformation A partir de modèles génériques, il s agit de préciser ce que sera l application : format de données, réalisation des fonctionnalités. Le(s) modèle(s) de l application sont donc complétés, affinés. Typiquement, il s agit à ce niveau de transformer un méta-modèle (modèle de modèle, qui indique les contraites que doit respecter l application), en modèle fonctionnel, dotés de services particuliers. Il peut également s agir de transformer un modèle fonctionnel indépendant de l application (PIM - Platform Independant Model) en modèle prennant en compte les contraintes de déploiement (PSM - Platform Specific Model). La génération de code Lorsque le modèle est complet, le code est généré. L application peut alors être déployée. Dans la pratique, le code généré doit être complété : l implémentation des différentes méthodes, par exemple, n est pas explicitée dans le modèle. 3

En cas d extension ultérieure du modèle, il est indispensable de disposer d un environnement de développement qui conserve le code ajouté. Si ce n est pas le cas, le développement incrémental est rendu beaucoup plus laborieux, et la création de grandes applications est compromise. Le stockage et l accès Les modèles peuvent être réutilisés pour le développement d autres applications, mais ils sont également accessibles par les applications elles-même. La spécification MOF (Metadata Object Facility) permet de définir des bases de données de modèles accessibles de manière transparente par les applications. 2.3 Organisation du tutoriel Le tutoriel est organisé comme suit : Comment passer d un modèle UML à un code exécutable? solution sont abordées : Deux 1. Génération de code par la plate-forme Eclipse. Le modèle est alors exprimé sous forme de Java annoté. Le code peut être complété parallèlement au modèle, à l intérieur de Eclipse : la regénération ne provoque pas la perte des modifications manuelles. 2. Génération de code par la plate-forme Poséidon. Le modèle UML est représenté sous forme graphique. Par contre, la génération de code écrase les versions préexistantes. Comment transformer des modèles? De même, deux solutions sont abordées : Transformation de modèles MOF Eclipse (format ecore), Transformation de modèles quelconques. On utilise pour celà la plate-forme ATL (Atlas transformation Language), disponible sous forme de plugg-in Eclipse. 4

3 Du Modèle au Code La première partie du tutoriel est une introduction à la génération automatique de code à partir d un modèle. Nous nous plaçons dans le cadre de la plate-forme Eclipse. Les étapes de la manipulation sont : 1. La première étape consiste à créer un modèle UML. 2. Ce diagramme UML doit être traduit en Java annoté pour être compris par Eclipse. Nous verrons comment faire la traduction. 3. Ensuite, un modèle de type MOF est généré, à partir de Java Annoté. Le format ecore est l implémentation Eclipse de la spécification MOF. 4. Le modèle existant peut être enrichi. 5. Le code java est généré à partir des objets ecore enrichis. 6. Une fois les classes générées, il est souvent indispensable d implémenter les fonctionnalités de ces classes. Les méthodes et variables peuvent être complétées, mais le modèle lui-même ne peut pas être modifié (afin de permettre la regénération de code sans perte de données). 7. Si l on a besoin de regénérer le code - souvent après avoir enrichi le modèle - les ajouts manuels sont conservés. Cette méthode permet donc un développement incrémental. 3.1 Installer Eclipse 3.1.1 Installation Téléchargez la plate-forme de développement intégré Eclipse depuis l adresse suivante : Installez-la. http ://www.eclipse.org/downloads/index.php 3.1.2 Prise en main Vous pouvez créer un programme Hello World pour vous aclimater à Eclipse. Pour celà : 1. Créez un nouveau projet Java (Fichier >Nouveau >Autres ; Sélectionnez Projet Java ; suivez le wizard), 2. Créez une classe Java, avec une méthode main() (Fichier >Nouveau >Classe Java ; suivez le Wizard), 3. Modifier le code pour afficher la phrase voulue, 4. Exécutez votre programme (Exécutez >Exécutez en tant que >Application Java). 5

3.2 Installer EMF Téléchargez et installez le framework EMF (Eclipse Modeling Framework) depuis l adresse suivante : http ://download.eclipse.org/tools/emf/scripts/downloads.php EMF doit être installé avec SDO (Service Data Objects) et XSD (XML Schema Infoset Model). SDO permet d unifier l accès à des données hétérogènes, par exemple stockés sous forme XML, en Base de Données Relationnelle, dans des Services Web, par les applications. XSD est une librairie qui permet de manipuler, créer et modifier des schémas XML. 3.3 Mon premier programe avec EMF 3.3.1 Comment ca marche? Pour créer un modèle EMF (au format Ecore), plusieurs formats de fichiers sont supportés : 1. Java Annoté 2. XML Schéma 3. Format Rational Rose Java annoté permet de mettre un place une solution légère, qui ne nécessite pas d outil extérieur, et qui ne restreint pas les possibilités de modélisation, contrairement à XML schéma. C est donc la solution choisie. Les étapes de la création d un programme avec EMF sont : 1. Création d un projet EMF : Fichier >Nouveau >Autres >Eclipse Modeling Framework >EMF Project, 2. Création du modèle, sous forme de Java Annoté, dans le nouveau projet (voir exemple), 3. Création d un modèle Ecore dans votre projet Eclipse : Fichier >Nouveau >Autres >Eclipse Modeling Framework >EMF Model, 4. Utilisez l option créer un modèle à partir de Java Annoté, et veillez à la création du fichier.ecore, qui contient le modèle (plus exactement le métamodèle) de l application, 5. Si besoin, vous pouvez enrichir le modèle (fichier.ecore), 6. Dans le fichier de génération (.genmodel), vous pouvez générer le code de votre programme, ainsi qu un éditeur de modèle (Generate Edit Code, Generate Editor Code), 7. Exécution de l éditeur de modèle (extension du modèle créé - création du modèle de l application à partir du méta-modèle Ecore). Pour créer vos propres programmes, vous pouvez vous référer au document suivant, qui établit la correspondance entre UML et Java Annoté : http ://www.rzo.free.fr/docs master/uml2annotatedjava.pdf 6

3.3.2 L exemple Un exemple intéressant d introduction à EMF se trouve à l adresse suivante (en anglais) : http ://download.eclipse.org/tools/emf/scripts/docs.php?doc=tutorials/clibmod/clibmod.html Complément : Enrichissement du modèle Vous pouvez compléter votre modèle en créant, dans l éditeur de modèle, les classes suivantes : Journaliste, héritant de Auteur, avec un attribut journal (le nom du journal pour lequel il travaille), une méthode ecrirearticle() (pour simuler l écriture d un article quotidien), Romancier, héritant de Auteur, avec des méthodes commencerroman(), et finirroman(), ainsi qu un attribut booléen romanencours. L enrichissement du modèle permet de réaliser la transition entre le méta-modèle de l application (réalisé ici par le biais de Java annoté) et le modèle de notre application, qui prend en compte des contraintes spécifiques. Création d un programme exécutable Vous pouvez ensuite générer le code correspondant, puis compléter les méthodes par un code adéquat. Pour les besoins du tutoriel, il peut être pratique d effectuer des affichages à l aide de System.out.println(), afin de suivre le déroulement du programme. L étape ultime consiste à créer une nouvelle classe masimulation, qui permet de jouer des scénarios sans nécessiter la mise en place d une interface graphique. Elle a pour rôle de simuler les manipulations d un utilisateur, par exemple dans le cadre d une application web. Le scénario proposé est le suivant : 1. Création d un bibliothèque, 2. Création de 3 ouvrages de votre choix, ainsi que de leurs auteurs (1 des auteurs doit être un Journaliste, un autre un Romancier), 3. Introduction de ces ouvrages dans la bibliothèque, 4. Ecriture d un roman : un romancier commence un roman, le finit (par appel des méthodes correspondantes). Dans la mehode finirroman(), le Roman doit être introduit dans la bibliothèque. 3.3.3 Bilan Nous avons vu comment il est possible de créer des modèles, de les enrichir, et de créer des programmes exécutables à partir de ces modèles, en utilisant la plate-forme Eclipse, et son framework EMF (Eclipse Modeling Framework). Un avantage de cette approche est que la génération de code est faite en respectant les compléments ajoutés manuellement. Il est donc possible d utiliser EMF pour un développement incrémental, et donc pour réaliser des applications de taille conséquente. 7

4 Une autre approche de la création de modèles : les diagrammes UML L usage de la plate-forme Eclipse permet une manipulation aisée, ainsi que des transformations comme nous allons le voir dans la partie suivante. Toutefois, la création de modèle par le biais de Java annoté n est pas la plus intuitive. Il est possible de créer des modèles EMF pour Eclipse à partir de l outil Rational Rose, encore faut-il en disposer. Pour palier à ce manque, nous allons utiliser Poséidon, qui est un outil puissant et disponible - ce qui n est pas la moindre de ses qualités - gratuitement dans une version Communauté. Il permet de mettre à profit l un des aspects qui a fait le succès de UML : les représentations graphiques des différents diagrammes. 4.1 Installer Poseidon L usage de l outil Poseidon est assez intuitif. Suivez les étapes pour créer votre premier exemple. 1. Téléchargez Poseidon, Community Edition, depuis http ://www.gentleware.com/, 2. Créez un modèle UML, 3. Ajoutez les commentaires Javadoc dans le modèle UML, 4. Sauvez votre modèle, 5. Exportez en tant que Classe Java (seul les diagrammes de classes sont exportés, les autres existent uniquement à fin de documentation), 6. Exportez sous format XMI, 7. Exportez en tant que graphique (si besoin), 8. Lancez la plate-forme Eclipse, et importez le fichier XMI créé. 4.2 Mon premier programme avec Poseidon Nous allons voir comment il est possible de créer, de manière simple et intruitive, un programme à l aide de la version Communauté de la plate-forme Poséidon. 4.2.1 La modélisation UML Créez les exemple de modèles UML suivants, et générez le code correspondant : Diagramme de Classe pour support de coopération 8

Modèle de Classe pour support de mobilité 4.2.2 Réalisation d un modèle complet Réaliser les diagrammes UML qui vous permettront de créer un programme fonctionnel. Il s agit de simuler deux clients, un connecté (de manière permanente), et un non connecté (ou connecté de manière intermitente), qui réalise les actions suivantes : ils accèdent par une méthode seconnecter() un serveur comportant des outils (tool) et des données (data), ils accèdent par une méthode travail() à un outil du serveur qui effectue un manipulation (quelconque) sur les données. 9

L outil peut être implémenté comme un singleton, de telle sorte que les deux clients travaillent sur les mêmes outils et donc les mêmes données. Ceci permet la mise en place de travail coopératif. Les diagrammes à réaliser sont dans l ordre : 1. Diagramme de cas d usage 2. Diagramme de séquence, qui permettent de mettre en évidence l enchaînement des appels de méthodes 3. Complétion du diagramme de classe précédement réalisé 4.2.3 Réalisation d un programme exécutable Pour aboutir à un programme exécutable à partir des modèles réalisés dans la partie précédente, il reste à faire : Effectuez la génération de code pour votre dernier diagramme. Il faut ensuite écrire le code fonctionnel des méthodes présentes. Pour valider le bon fonctionnement de votre programme, écrivez une classe masimulation, qui crée deux clients (un connecté et un non connecté), se connecte, et effectue un travail(). Votre modélisation ayant été faite de manière précise, la structure des classes (méthodes, attributs) n a pas besoin d être modifié, il suffit d implémenter les méthodes. 4.2.4 Bilan Nous avons vu comment il est possible de créer des modèles, et de créer des programmes exécutables à partir de ces modèles, en utilisant la plate-forme Poséidon. L interface graphique permet d efectuer la modélisation de manière intuitive et communicable. L inconvénient de cette approche est que la génération de code écrase le code préexistant, le développement incrémental est donc plus difficile. Il existe une version commerciale de Poséidon disponible sous forme de pluggin Eclipse. L intégration entre les deux outils est donc possible. En utilisant la version Communauté, il est nécessaire pour passer de l un à l autre d utiliser le format XMI, moins aisément manipulable. 10

5 La Transformation de Modèles 5.1 Le Principe La transformation de modèle MDA se fait par mapping entre un modèle initial et un modèle cible. Chaque modèle doit être décrit par un méta-modèle, qui recense les caractéristiques de ce modèle. Le mapping est alors définit comme une traduction entre le méta-modèle initial et le méta-modèle cible. La figure suivante présente le principe de la transformation. Pour effectuer la transformation, un moteur de transformation est indispensable. Plusieurs sont à notre disposition pour Eclipse : EMF, qui permet de réaliser des mapping entre fichiers ecore. EMF permet également de les définir par le biais d une interface graphique, ATL (Atlas Transformation Tool), qui permet de réaliser la traduction entre fichiers XMI. Il est indispensable de disposer des méta-modèles initiaux et cibles, ainsi que d un fichier de mapping, Omelet, qui doit permettre le mapping de modèles de formats quelconque, mais est encore dans une phase de test. 5.2 Transformation de modèles ecore Cette partie sera complétée dès que possible. 5.3 Transformation de modèles avec ATL Cette partie sera complétée dès que possible. 11

6 Bilan 6.1 Les transformations réalisées Le schéma suivant présente un récapitulatif des transformations réalisées au cours de ce tutoriel. 6.1.1 Les Formats Les formats de données sont indiqués sur fond rouge sur le schéma. Ce sont : UML, représentation des modèles de manière graphique, avec exploitation directe (Poséidon), ou après traduction en Java annoté (EMF), XMI, format standard défini par l OMG, tous les modèles sont disponibles en format XMI, mais la représentation sous forme de fichier texte fait que, pour la manipulation, les formats graphiques UML et les modèles Ecore d EMF sont préférés, Ecore, c est l implémentation de MOF par Eclipse. La création de modèle est possible à partir de nombreux formats (Java Annoté, XML schema, Rational Rose, etc.), l enrichissement est possible de manière simple par la représentation hiérarchique des modèles. Un langage de transformation de modèle peut également être défini. MDR, Meta Data Repository, c est l implémentation d une base de données pour modèles compatibles MOF de Sun. Elle fait partie de l outil NetBean. 6.1.2 Les Outils Trois outils ont été utilisés : 12

EMF (Eclipse Modeling Framework), l environnement de la plate-forme Eclipse dédié au MDA, ATL (Atlas Transformation Language), disponible sous forme de plugg-in pour Eclipse, qui permet de réaliser des transformations quelconques sur des données au format XMI, Poséidon, qui existe également sous forme de plugg-in Eclipse (en version payante), mais qui est utilisé ici dans sa version Communauté, en libre accès. JMI, Java Metadata Interface, permet d accéder à une base de données de métamodèle et de les manipuler. 6.2 Outils utilisés Les outils utilisés sont : Nom Site web Eclipse http ://www.eclipse.org/downloads/index.php EMF http ://download.eclipse.org/tools/emf/scripts/downloads.php Poseidon http ://www.gentleware.com/products/download.php4 13

7 Glossaire PIM : Platform Independant Model. Modèle d application indépendant d une plate-forme matérielle ou logicielle particulière, qui est donc doté d une grande portabilité. PM : Platform Model. Le modèle de la plate-forme sur laquelle une application sera déployée. Associé au PIM, il permet d obtenir le PSM (Platform Specific Model). PSM : Platform Specific Model. Modèle d application dépendant de la plateforme matérielle ou logicielle dans laquelle il sera déployé. Il est obtenu à partir du PIM (Platform Independant Model) et du PM (Platform Model). Méta-modèle : Modèle de modèle, c est à dire représentation abstraite des contraintes existants sur une famille de modèles. MOF : Metadata Object Facility. Cette spécification met à disposition un langage commun pour accéder et manipuler les divers méta-modèles. UML : Unified Modeling Language. C est un langage de modélisation graphique. Il conprend plusieurs types de représentations, en particulier les diagrammes de cas d usage, les diagrammes de classes et les diagrammes de séquences. XMI : XML Metadata Interchage. Format de données permettant de représenter, de manipuler, de transformer, des méta-modèles. 14