© itemis France 2009 – All rights reserved 1
Yannick Lizzi
Architecte Logiciel
itemis France
Mail: [email protected]
openArchitectureWare & transformation de modèle
© 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, …
© itemis France 2009 – All rights reserved 3
Ingénierie des Modèles
Quelques concepts
© 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)
© 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
© itemis France 2009 – All rights reserved 6
Ingénierie des Modèles
avec openArchitectureWare
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© itemis France 2009 – All rights reserved 14
Transformation de modèle avec oAWMigration de diagrammes Rational Rose vers Topcased/UML
© 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 ?
© 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 »
© 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
© 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
© 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
© itemis France 2009 – All rights reserved 20
: Librarian : Librarian
: LibrarianService : LibrarianService
: Book : Book
: BookDao : BookDao
createBook(Book)
addBook( )
Résultats en image
© itemis France 2009 – All rights reserved 21
Merci pour votre attention!
Questions & Réponses