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



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

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

Projet de développement

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

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

Information utiles. webpage : Google+ : digiusto/

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

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

[Projet S9] Rédacteurs & Contributeurs Entité Rédacteurs Contributeurs Imededdine HOSNI Olivier MARTY. Validation du document Nom Date Visa

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

Introduction à Eclipse

Tutoriel QSOS. Version /02/2013

Conception, architecture et urbanisation des systèmes d information

MEGA Application Portfolio Management. Guide d utilisation

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

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

Méthodes d évolution de modèle produit dans les systèmes du type PLM

INGÉNIERIE DIRIGÉE PAR LES MODÈLES ET COMPOSANTS SENSIBLES AU CONTEXTE

BIRT (Business Intelligence and Reporting Tools)

TP1 : Initiation à Java et Eclipse

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

IFT2255 : Génie logiciel

Systèmes d information et bases de données (niveau 1)

MEGA ITSM Accelerator. Guide de démarrage

Compte Rendu d intégration d application

Menu Fédérateur. Procédure de réinstallation du logiciel EIC Menu Fédérateur d un ancien poste vers un nouveau poste

Construire des plug-ins pour SAS Management Console SAS 9.1

IFT785 Approches Orientées Objets. FINAL Été Remise : Jeudi 19 août 2002 à 9h00 am

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

MEGA ITSM Accelerator. Guide de Démarrage

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

Mercredi 15 Janvier 2014

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

TP1 : Initiation à Java et Eclipse

Cours en ligne Développement Java pour le web

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Édu-groupe - Version 4.3

ECLIPSE ET PDT (Php development tools)

UML (Diagramme de classes) Unified Modeling Language

Environnements de développement (intégrés)

DotNet. Plan. Les outils de développement

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

Chapitre VI- La validation de la composition.

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

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)

Paul FLYE SAINTE MARIE

Bases Java - Eclipse / Netbeans

Plateforme de capture et d analyse de sites Web AspirWeb

Introduction aux concepts d ez Publish

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Approche Contract First

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

Optimiser pour les appareils mobiles

Sélection du contrôleur

PHILA-Collector-USB-16Go Pour Windows & Android

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

Visual Paradigm Contraintes inter-associations

Le langage C. Séance n 4

4. SERVICES WEB REST 46

Chapitre I : le langage UML et le processus unifié

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

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

1 Modélisation d être mauvais payeur

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

1. Plan. 1. Plan Information essentielles...2

Rappel sur les bases de données

MEGA Publisher. Guide d utilisation

Burckel Thomas. Formation. Compétences

ANALYSTE PROGRAMMEUR DIPLÔME D ÉTABLISSEMENT

Évaluation et implémentation des langages

UML est-il soluble dans les méthodes agiles?

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

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

Glassfish dans le milieu médical. Sun Aquarium Paris 26 Juin 2009 Jacky Renno

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

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

GOL-502 Industrie de services. Travaux Pratique / Devoir #7

Les diagrammes de modélisation

Modelio by Modeliosoft

Maîtrisez la modernisation de votre patrimoine applicatif

Conception des bases de données : Modèle Entité-Association

LICENCE : INFORMATIQUE GENERALE

Traduction des Langages : Le Compilateur Micro Java

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

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

Initiation à JAVA et à la programmation objet.

Master Informatique Aix-Marseille Université

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

Intégration de l interface graphique de Ptidej dans Eclipse

SECTION 5 BANQUE DE PROJETS

Inspiration 7.5. Brève description d Inspiration. Avantages d Inspiration. Inconvénients d Inspiration

Comment créer des rapports de test professionnels sous LabVIEW? NIDays 2002

PROTEGER SA CLE USB AVEC ROHOS MINI-DRIVE

Environnements et Outils de Développement Cours 1 Introduction

CQP Développeur Nouvelles Technologies (DNT)

Travaux pratiques avec RapidMiner

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Configuration du FTP Isolé Active Directory

OCL - Object Constraint Language

Transcription:

Cedric Dumoulin

Générer du code à partir d une description de haut niveau Ce projet vise à fournir un environnement de développement permettant de modéliser des UI Android à un haut niveau d abstraction, puis, en cliquant sur un bouton, de générer le code de bas niveau correspondant. Un utilisateur de l environnement pourra modéliser des UI Android dans un éditeur de modèle de UI, et générer le code correspondant à la UI.

Que veut dire modéliser à un haut niveau d abstraction? Modéliser à un haut niveau d abstraction signifie que l on veut concevoir la UI en manipulant des concepts métier propre à la UI comme Button, Text, Checkbox, etc. Dans cette modélisation, on ne se soucie pas de la plomberie propre à l implémentation de la UI, comme par exemple de devoir déclarer les chaines de caractères.

Comment représenter un modèle? Un modèle peut être représenté de plusieurs façons. Il y a trois grande catégories: les représentations graphique sous forme de graphe, les représentations arborescentes, et les représentations textuelles. La représentation d un modèle s appelle sa syntaxe concrète.

Les principales catégories de syntaxes concrètes La représentions graphique présente le modèle sous la forme d un graphe. Les nœuds sont généralement les concepts manipulés, et les liens sont les relations entre ces concepts. Les nœuds peuvent prendre différentes formes : rectangle, icones, Par exemple, le diagramme de classes UML permet de représenter un modèle UML sous une forme graphique. La représentation arborescente permet de représenté un modèle sous la forme d un arbre. Les nœuds de l arbre sont généralement les concepts du modèles. Par exemple, l explorateur de modèle de Papyrus représente un modèle UML sous la forme d un arbre. Autre exemple : Dans Eclipse, dans l explorateur de package, vous pouvez cliquer sur une classe Java. Vous avez alors une représentation arborescente de cette classe. Une représentation textuelle permet de décrire un modèle sous la forme d un texte. Par exemple, un fichier de code Java est une représentation textuelle d une classe Java.

Comment se présente l éditeur de modèle? L editeur de modèle proposé par l environement peut être graphique, arborescent ou textuel Un éditeur graphique permet principalement de manipuler les concepts sous forme de rectangles (ou d icones), et de relier les concepts entre eux à l aide de liens. Par exemple, le diagramme de classe de UML est un editeur graphique pour UML. Un editeur arborescent permet d editer un modele dans un arbre dont les nœuds representent les concepts. Par exemple, l explorateur de modèle de Papyrus est un editeur arborecent pour UML. Un éditeur textuel permet de décrire un modèle sous la forme d un texte.

Que fournit l environnement de génération de code? Notre environnement doit permettre de modéliser les UI, et de générer le code correspondant. Il doit donc fournir deux composants principaux: Un éditeur de modèle Un générateur de code

L éditeur de modèle L éditeur de modèle doit permettre à l utilisateur final de modéliser sa UI en respectant un langage de modélisation bien défini. L éditeur doit produire un modèle.

Le générateur de code Le générateur de code doit permettre de générer le code Android à partir du modèle produit par l éditeur. Le code produit doit être immédiatement compilable par l environement Android. L utilisateur ne doit pas avoir besoin de modifier manuellement le code produit.

L ingénierie Dirigée par les modèles (IDM) L IDM met le modèle au cœur de la conception d applications L IDM permet de manipuler des modèles (les concevoir, les éditer), de transformer des modèles en d autres modèles (transformation de modèles), de vérifier des modèles, et de générer du texte à partir de modèles.

Métamodèle, syntaxe abstraite Dans l IDM, un modèle doit être écrit en respectant une syntaxe précise (un langage). Ce langage est décrit dans un métamodèle. Le métamodèles définit les concepts utilisables dans le modèle. C est ce qu on appel la syntaxe abstraite d un modèle. Plusieurs frameworks mettent en œuvre l IDM, comme par exemple EMF.

EMF EMF est un framework pour la manipulation de modèles. EMF permet de spécifier des métamodèles (MM), puis, à partir de ces MM de générer des classes Java support du MM. Les classes support du MM fournissent: Un éditeur arborescent. Permettant de faire des modèles conformes au MM. Les modèles peuvent être sauvegardé en XML. Une classe Java pour chaque concept du MM. Cela permet de manipuler un modèle dans un programme Java Des méthodes d import/export du modèle en XML. Cela permet de manipuler un modèle dans un programme en Java, puis de sauvegarder ce modèle dans un fichier XML. Cela permet aussi d importer un fichier XML d un modèle afin de le manipuler dans un programme Java.

MTL / Acceleo MTL est le standard OMG pour générer du texte à partir d un modèle. Acceleo est une implementation de ce standard. La génération de texte se fait à l aide de templates. Un template est un texte avec des points d insertions. Un point d insertion indique un endroit ou le texte doit être généré à partir de valeurs trouvé dans le modèle. Un point d insertion est exprimé à l aide des concepts du métamodèle. Par exemple, un point d insertion va dire qu il faut prendre la valeur de l attribut name du concept de type A. Les point d insertion sont remplacés par les valeurs du modèle par le moteur de génération. Le resultat est un texte conforme au template.

Comment réaliser le projet? Pour réaliser le projet, il faut fournir un environnement avec : Un éditeur de modèle pour construire des UI Android Un générateur de code générant le code à partir des modèles construit avec l éditeur. Les modèles doivent suivre une syntaxe précise. L éditeur doit faciliter l utilisation de cette syntaxe

Réalisation de l éditeur de modèles EMF permet réaliser simplement des éditeurs de modèles arborescent. GMF, et d autres frameworks (XPray, Graphiti,...) permettent de réaliser des éditeurs de modèles graphiques. L apprentissage de ces framework à un cout (en temps) Xtext permet de réaliser des éditeurs de modèles textuels. L apprentissage de ce framework à un cout. Pour notre projet, nous utiliserons EMF.

Réalisation de l éditeur de modèles avec EMF EMF génère automatiquement un éditeur arborescent à partir d un métamodèle (MM). Il faut donc définir le MM, et demander à EMF la génération des classes support.

Projets généré par EMF EMF génére 4 projets à partir d un métamodèle Monprojet Contient les classes support pour le modèle Ce projet peut être le projet de départ de votre conception. Monprojet.edit Contient des classes support pour l édition du modèle Monprojet.editor Contient l éditeur arborescent. Monprojet.tests Contient des classes Java/Junit pour le test unitaire du modèle

L éditeur de modèle concrètement Vous devez concevoir le MM correspondant à votre langage permettant de décrire une UI Android Vous générez les classes Java support du MM. EMF génére l éditeur arborescent. L éditeur de modèle a besoin des jar des projets pour fonctionner Il faut donc lancer un «Eclipse de test» pour tester l editeur, et faire des modèles de UI Android. Revoir votre tutorial EMF Vous pouvez maintenant écrire des modèles décrivant une UI Android.

Réalisation du générateur de code Le générateur de code se fait avec MTL/Acceleo Le générateur consiste à écrire des templates permettant de générer le code UI Android à partir de modèles décrivant cette UI. Un template génère du code à partir d un modèle Ce modèle doit être conforme à un MM Le template s écrit à l aide des concepts du MM! pour générer du code UI Android, votre template doit déclarer qu il utilise le MM UIAndroid

Le générateur de code concretement Il est développé dans son propre projet. Ce projet a besoin des jar des projets du MM pour fonctionner. Il ne peut donc fonctionner que dans «l eclipse de test». Le générateur de code peut être testé dans le même eclipse que son projet. pas besoin d ouvrir un 3eme Eclipse

Le problème Votre métamodèle de UI Android est développé dans votre Eclipse de travail. Mais, il ne peut pas être utilisé dans l Eclipse de travail On ne peut l utiliser que dans l Eclipse de tests La génération de code nécessite de pouvoir utiliser votre MM La génération de code doit être développé dans l Eclipse de tests.

Organiser l environnement Les projets du MM sont dans l éclipse de travail Le projet de génération de code doit être dans l Eclipse de tests Tous les projets doivent être reunis dans un seul espace de travail Facilite la gestion de version (SVN, GIT) Comment faire???

Organiser l environnement Créer tout les projet dans l Eclipse de travail Le projet du metamodeles Et les projets l accompagnant (.edit,.editor) Le projet de generation de code Ne pas générer le templte tous de suite Lancer l Eclipse de tests Importer le projet de génération de code Import SANS copie Vous pouvez maintenant créer un template. le projet est accessible dans les deux Eclipse le projet est physiquement dans l Eclipse de travail