+ All Categories
Home > Documents > openArchitectureWare & transformation de modèle · PDF fileXtext: outillage pour...

openArchitectureWare & transformation de modèle · PDF fileXtext: outillage pour...

Date post: 09-Mar-2018
Category:
Upload: lamphuc
View: 218 times
Download: 2 times
Share this document with a friend
21
© itemis France 2009 All rights reserved 1 Yannick Lizzi Architecte Logiciel itemis France Mail: [email protected] openArchitectureWare & transformation de modèle
Transcript
Page 1: openArchitectureWare & transformation de modèle · PDF fileXtext: outillage pour réaliser son propre DSL textuel (TMF / Xtext) Xpand: langage de template pour la génération de

© itemis France 2009 – All rights reserved 1

Yannick Lizzi

Architecte Logiciel

itemis France

Mail: [email protected]

openArchitectureWare & transformation de modèle

Page 2: openArchitectureWare & transformation de modèle · PDF fileXtext: outillage pour réaliser son propre DSL textuel (TMF / Xtext) Xpand: langage de template pour la génération de

© itemis France 2009 – All rights reserved 2

Itemis en quelques mots

Spécialisé dans l’ingénierie des modèles

Formations, Coaching, Consulting, Développement d’outils

Localisé en Allemagne, France, Suisse et Canada

Créé en 2003, 150 employés

Membre stratégique de la fondation Eclipse, 8 committers sur le projet Eclipse Modeling

Fort investissement dans la recherche

Collaboration intensive avec des laboratoires de recherche

Projets R&D locaux et européens

Clients dans des domaines multiples (embarqué, bancaire, télécom, assurance, …)

Bosch, Volkswagen, EADS, Airbus, Deutsche Post, T Mobile, PwC, …

Page 3: openArchitectureWare & transformation de modèle · PDF fileXtext: outillage pour réaliser son propre DSL textuel (TMF / Xtext) Xpand: langage de template pour la génération de

© itemis France 2009 – All rights reserved 3

Ingénierie des Modèles

Quelques concepts

Page 4: openArchitectureWare & transformation de modèle · PDF fileXtext: outillage pour réaliser son propre DSL textuel (TMF / Xtext) Xpand: langage de template pour la génération de

© itemis France 2009 – All rights reserved 4

Quelques concepts

Modèle : abstraction de la réalité

Formel / Non Formel

Graphique / Textuel

Méta-modèle: définit comment un modèle est construit

Syntaxe abstraite de modélisation

Ex: UML, DSL, Ecore (EMF)

Méta-Méta Modèle : définit la structure du méta-modèle

Ex: MOF, Ecore (EMOF)

Page 5: openArchitectureWare & transformation de modèle · PDF fileXtext: outillage pour réaliser son propre DSL textuel (TMF / Xtext) Xpand: langage de template pour la génération de

© itemis France 2009 – All rights reserved 5

Quelques concepts

MDA / MDSD

Utilisations de modèles formels

Pour générer du code

Pour faire de la transformation de modèle

Méta-modèle

Modèle

instanceof

Modèle

Générateur

Modèle

Transformation

Code généré Code manuel

Nouveau modèle

Pour : outil, générateur…

Plateforme

Page 6: openArchitectureWare & transformation de modèle · PDF fileXtext: outillage pour réaliser son propre DSL textuel (TMF / Xtext) Xpand: langage de template pour la génération de

© itemis France 2009 – All rights reserved 6

Ingénierie des Modèles

avec openArchitectureWare

Page 7: openArchitectureWare & transformation de modèle · PDF fileXtext: outillage pour réaliser son propre DSL textuel (TMF / Xtext) Xpand: langage de template pour la génération de

© itemis France 2009 – All rights reserved 7

Qu’est-ce que openArchitectureWare (oAW)

Un ensemble de technologies open source supports à l’IDM

Intégré à Eclipse Galileo

oAW inclut :

Xtext: outillage pour réaliser son propre DSL textuel (TMF / Xtext)

Xpand: langage de template pour la génération de code (M2T / Xpand)

Xtend: langage d’expression pour effectuer des opérations sur les modèles incluant la

transformation de modèle à modèle (M2T / Xpand)

Check: langage d’expression pour la vérification de modèle (M2T / Xpand)

Moteur de workflow pour enchainer les transformations et générations (EMFT / Modeling

Workflow - MWE)

Supporte EMF mais aussi UML2, XML/XSD & simple JavaBeans

Page 8: openArchitectureWare & transformation de modèle · PDF fileXtext: outillage pour réaliser son propre DSL textuel (TMF / Xtext) Xpand: langage de template pour la génération de

© itemis France 2009 – All rights reserved 8

Xtext

Editeur pour définir sa propre grammaire

Génère:

Meta-modèle ecore

Lexer / Parser

Editeur complet textuel Eclipse adapté à

la grammaire

S’intègre avec EMF, GMF

Personnalisable : architecture basée sur Google Guice

Méta-modèle Modèleinstanceof

Modèle

Générateur

Page 9: openArchitectureWare & transformation de modèle · PDF fileXtext: outillage pour réaliser son propre DSL textuel (TMF / Xtext) Xpand: langage de template pour la génération de

© itemis France 2009 – All rights reserved 9

Xtext

L’éditeur généré permet d’éditer le modèle en suivant les règles de la grammaire

Il supporte (personnalisable):

Complétion de code

Vérification syntaxique et sémantique

Affichage des erreurs

Coloration syntaxique

Gestion de la Outline

Navigation de type

Méta-modèle Modèleinstanceof

Modèle

Générateur

Page 10: openArchitectureWare & transformation de modèle · PDF fileXtext: outillage pour réaliser son propre DSL textuel (TMF / Xtext) Xpand: langage de template pour la génération de

© itemis France 2009 – All rights reserved 10

Xpand

Langage de template spécialisé pour la génération de code

Editeur (complétion de code, coloration syntaxique, …)

Debugger

Supporte le polymorphisme de template

Programmation par aspect: possibilité d’intercepter le comportement d’un template (« around »)

Méta-modèle Modèleinstanceof

Modèle

Générateur

Page 11: openArchitectureWare & transformation de modèle · PDF fileXtext: outillage pour réaliser son propre DSL textuel (TMF / Xtext) Xpand: langage de template pour la génération de

© itemis France 2009 – All rights reserved 11

Xtend

Langage d’expression permettant :

De définir des expressions complexes et réutilisables appelables depuis Xpand

De faire de la transformation de modèle

Supporte le polymorphisme et permet d’appeler du Java

Editeur spécifique (complétion, coloration syntaxique, …)

Méta-modèle Modèleinstanceof

Modèle

Transformation

Page 12: openArchitectureWare & transformation de modèle · PDF fileXtext: outillage pour réaliser son propre DSL textuel (TMF / Xtext) Xpand: langage de template pour la génération de

© itemis France 2009 – All rights reserved 12

Check

Langage d’expression de type OCL pour la vérification de modèle

Peut être utilisé pour la vérification sémantique de l’éditeur généré pour une grammaire

Méta-modèle Modèleinstanceof

Modèle

Vérification

Page 13: openArchitectureWare & transformation de modèle · PDF fileXtext: outillage pour réaliser son propre DSL textuel (TMF / Xtext) Xpand: langage de template pour la génération de

© itemis France 2009 – All rights reserved 13

Modeling Workflow Engine

Framework extensible pour enchainer des traitements de modèle

Fournit des composants de base : transformation, génération, vérification

Fournit des API pour définir ses propres composants

Langage XML, exécution depuis Eclipse ou en standalone

Page 14: openArchitectureWare & transformation de modèle · PDF fileXtext: outillage pour réaliser son propre DSL textuel (TMF / Xtext) Xpand: langage de template pour la génération de

© itemis France 2009 – All rights reserved 14

Transformation de modèle avec oAWMigration de diagrammes Rational Rose vers Topcased/UML

Page 15: openArchitectureWare & transformation de modèle · PDF fileXtext: outillage pour réaliser son propre DSL textuel (TMF / Xtext) Xpand: langage de template pour la génération de

© itemis France 2009 – All rights reserved 15

Contexte (politique)

Certains industriels souhaitent basculer vers des solutions open source pour la modélisation UML

Coût

Intégration avec des outils et processus de développement

Une étape clé, la phase de transition

Migration des modèles existants vers l’outil open source

A quel coût?

Topcased: environnement de développement open source pour les systèmes critiques

Basé sur Eclipse

Supporte plusieurs langages de modélisation, dont UML

Rational Rose vers Topcased/UML, automatisation possible ?

Page 16: openArchitectureWare & transformation de modèle · PDF fileXtext: outillage pour réaliser son propre DSL textuel (TMF / Xtext) Xpand: langage de template pour la génération de

© itemis France 2009 – All rights reserved 16

Contexte (technique)

Topcased s’appuie sur :

Eclipse UML2 pour les modèles

UMLDI (Diagram Interchange) pour le modèle de diagramme (layout, taille, couleur,…)

Rational Software Modeler permet de :

Lire un fichier Rose

Export au format UML2 (~ compatible avec Topcased)

Problème:

Le modèle UML2 exporté ne contient pas les diagrammes (données graphiques)

Format Rose n’est pas « ouvert »

Page 17: openArchitectureWare & transformation de modèle · PDF fileXtext: outillage pour réaliser son propre DSL textuel (TMF / Xtext) Xpand: langage de template pour la génération de

© itemis France 2009 – All rights reserved 17

Prototype de transformation Rose → Topcased

Entrée

Fichier Rational Rose (.mdl)

Fichier modèle UML2 (.uml) → obtenu grâce à l’export Rational Software Modeler

Sortie

Le modèle UML2 (.uml) légèrement modifié

Le modèle de diagramme (.umldi)

Diagrammes supportés

Diagramme des Cas d’Utilisation

Diagrammes de Classe

Diagrammes de Séquence

Page 18: openArchitectureWare & transformation de modèle · PDF fileXtext: outillage pour réaliser son propre DSL textuel (TMF / Xtext) Xpand: langage de template pour la génération de

© itemis France 2009 – All rights reserved 18

Architecture

openArchitectureWare (Xtend)

JavaBean meta-model

CrazyBeans model

UML2 meta-model Ecore meta-model

UML2 modelDiagrams &

DiagramInterchange models

Transformation

.mdl file .umldi file.uml file

Page 19: openArchitectureWare & transformation de modèle · PDF fileXtext: outillage pour réaliser son propre DSL textuel (TMF / Xtext) Xpand: langage de template pour la génération de

© itemis France 2009 – All rights reserved 19

Worflow

Parsing du modèle Rose model grâce à CrazyBeans

Librairie open source permettant de lire un fichier Rose

Créé une représentation objet du modèle Rose

Première transformation Xtend pour créer un modèle « bridge » intermédiaire

Liens entre les éléments Rose et les éléments UML2

Facilite la création du modèle de diagramme

Adaptation des éléments UML2 aux contraintes Topcased

Seconde transformation Xtend pour créer le modèle des diagrammes

Sérialisation des fichiers UML and UMLDI

Utilisation de TopcasedXmiWriter (EMF Resource) présent dans Topcased

Page 20: openArchitectureWare & transformation de modèle · PDF fileXtext: outillage pour réaliser son propre DSL textuel (TMF / Xtext) Xpand: langage de template pour la génération de

© itemis France 2009 – All rights reserved 20

: Librarian : Librarian

: LibrarianService : LibrarianService

: Book : Book

: BookDao : BookDao

createBook(Book)

addBook( )

Résultats en image

Page 21: openArchitectureWare & transformation de modèle · PDF fileXtext: outillage pour réaliser son propre DSL textuel (TMF / Xtext) Xpand: langage de template pour la génération de

© itemis France 2009 – All rights reserved 21

Merci pour votre attention!

Questions & Réponses


Recommended