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