openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de 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 s Quelques concepts itemis France 2009 All rights reserved 3
Quelques concepts : 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 : définit la structure du méta-modèle Ex: MOF, Ecore (EMOF) itemis France 2009 All rights reserved 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 Code généré Code manuel instanceof Générateur Plateforme Transformation Nouveau modèle Pour : outil, générateur itemis France 2009 All rights reserved 5
Ingénierie des s 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 Méta-modèle instanceof 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 Méta-modèle instanceof 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 Méta-modèle instanceof 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 Méta-modèle instanceof 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 Méta-modèle instanceof 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 Sortie Fichier Rational Rose (.mdl) Fichier modèle UML2 (.uml) obtenu grâce à l export Rational Software Modeler 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 : Librarian : LibrarianService : BookDao 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