Présentation Yannick Lizzi (pdf, 586 Ko)

Transcription

Présentation Yannick Lizzi (pdf, 586 Ko)
openArchitectureWare &
transformation de modèle
Yannick Lizzi
Architecte Logiciel
itemis France
Mail: [email protected]
© itemis France 2009 – All rights reserved
1
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
2
Ingénierie des Modèles
Quelques concepts
© itemis France 2009 – All rights reserved
3
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

© itemis France 2009 – All rights reserved
Ex: MOF, Ecore (EMOF)
4
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
Code généré
Code manuel
Générateur
Plateforme
Modèle
Nouveau modèle
Modèle
Pour : outil, générateur…
Transformation
© itemis France 2009 – All rights reserved
5
Ingénierie des Modèles
avec openArchitectureWare
© itemis France 2009 – All rights reserved
6
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
7
Xtext
instanceof
Méta-modèle
Modèle
Modèle
Générateur

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
© itemis France 2009 – All rights reserved
8
Xtext
instanceof
Méta-modèle
Modèle
Modèle
Générateur


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
© itemis France 2009 – All rights reserved
9
Xpand
instanceof
Méta-modèle
Modèle
Modèle
Générateur


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 »)
© itemis France 2009 – All rights reserved
10
Xtend
instanceof
Méta-modèle
Modèle
Modèle
Transformation

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, …)
© itemis France 2009 – All rights reserved
11
Check
instanceof
Méta-modèle
Modèle
Modèle
Vérification


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
© itemis France 2009 – All rights reserved
12
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
13
Transformation de modèle avec oAW
Migration de diagrammes Rational Rose vers Topcased/UML
© itemis France 2009 – All rights reserved
14
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
15
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
16
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
17
Architecture
Transformation
.mdl file
.uml file
.umldi file
CrazyBeans model
UML2 model
Diagrams &
DiagramInterchange
models
JavaBean meta-model
UML2 meta-model
Ecore meta-model
openArchitectureWare (Xtend)
© itemis France 2009 – All rights reserved
18
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
19
Résultats en image
: LibrarianService
: BookDao
: Librarian
addBook( )
: Book
createBook(Book)
© itemis France 2009 – All rights reserved
20
Merci pour votre attention!
Questions & Réponses
© itemis France 2009 – All rights reserved
21