14 Janvier 2008 Ecole Centrale
Plan Mise en bouche... Un modèle? 1 Mise en bouche... Un modèle? 2 MDA? 3 UML Eclipse 4
Plan Mise en bouche... Un modèle? 1 Mise en bouche... Un modèle? 2 MDA? 3 UML Eclipse 4
A quoi ça sert? Mise en bouche... Un modèle? diagramme de classe
Couche présentation Mise en bouche... Un modèle? un template smarty par écran un template smarty par objet métier un contrôleur par écran un index : point d entrée des requêtes
Code généré Mise en bouche... Un modèle? AddAuthorCtrl.php5
Couche métier/données Mise en bouche... Un modèle? une classe d accès par type d objet une classe de DTO et de proxy par objet métier mapping PearDB un script sql
Code généré Mise en bouche... Un modèle? BookDAO.php5
Présentation Mise en bouche... Un modèle? 1 Partie 1 :, MDA et UML Qu est-ce qu un modèle? Le MDA et sa mise en oeuvre. Technologies 2 Partie 2 : Méta-modèles Qu est-ce qu un méta-modèle? Mise en oeuvre
Obeo Mise en bouche... Un modèle? Jeune entreprise nantaise Démarche outillée de développement informatique. Édite une plateforme de développement dirigé par les modèles Collaboration avec la recherche académique
Obeo et l OpenSource Mise en bouche... Un modèle? Acceleo : générateur de code nouvelle génération Au sein d Eclipse : EMF Compare (lead ) SCA Composite modeler (lead Stéphane Drapeau) ATL (William Piers) QVT Relations (lead Quentin Glineur) Alliance Libre : groupement d entreprises libristes
Problématiques Mise en bouche... Un modèle? Systèmes logiciels volumineux, complexes et hétérogènes. Compréhension/Analyse difficile Maîtrise de nombreuses technologies spécialisées Évolution des technologies Refonte et migration «de zero» Solution Permettre une meilleure maîtrise des développements en modélisant et en automatisant ce qui peut l être.
Plan Mise en bouche... Un modèle? 1 Mise en bouche... Un modèle? 2 MDA? 3 UML Eclipse 4
Qu est-ce qu un modèle? Mise en bouche... Un modèle? Définition pour un concept ou objet qui est la représentation d une autre (le «modèle réduit» ou maquette, le «modèle» du scientifique), à construire ou déjà existant. pour un objet réel dont on cherche à donner une représentation, qu on cherche à imiter (exemple : le «modèle» du peintre, le «modèle» que constitue le maître pour le disciple).
Plusieurs notions Mise en bouche... Un modèle? Abstraction : on représente un système en enlevant toute l information qui ne nous intéresse pas. Simulation : on teste une construction pour évaluer sa qualité. Formalisme : la réprésentation est basée sur un certain nombre de règles.
Un système Mise en bouche... Un modèle? Le bassin d Arcachon
Un modèle Mise en bouche... Un modèle? La carte du bassin
Un autre modèle Mise en bouche... Un modèle? René Magritte
Objet de la représentation Mise en bouche... Un modèle? Raison d être du modèle Simplifier pour ne s attacher qu à une préoccupation donnée. Corollaire Une modélisation n a de sens que si l on indique dans un premier temps, quelle est son objectif et à quelle préoccupation elle s attache. Dans le cas contraire il ne s agit que de boxologie a. a Désigne la science des boîtes cf Henri Habrias
Un «vieux» modèle Mise en bouche... Un modèle? Représentation de l Egypte anthique
Un modèle mathématique Mise en bouche... Un modèle? Modèle mathématique de capteur SYCLOP a a Cyril CAUCHOIS : IUT Amiens
Un modèle informatique Mise en bouche... Un modèle? Modèle Ecore
Un diagramme de cas d utilisation Mise en bouche... Un modèle?
Un diagramme de séquence Mise en bouche... Un modèle?
Plan MDA? 1 Mise en bouche... Un modèle? 2 MDA? 3 UML Eclipse 4
Plan MDA? 1 Mise en bouche... Un modèle? 2 MDA? 3 UML Eclipse 4
OMG MDA? Consortium d industriels Responsables de : UML CORBA Mais aussi : XMI MOF QVT MTL ADM...
MDA? MDA? Model Driven Architecture
MDA? (suite) MDA? Premières spécifications en 2000 Version actuelle du «Guide MDA» : 03-06-01 60 pages qui décrivent : La vision de l OMG Comment l utiliser Les transformations MDA MDA est une marque déposée
MDA : résumé des spécifications MDA? Des modèles partout (en particulier UML) Des langages pour transformer les modèles Un cycle de développement en Y
Cycle de développement en Y MDA?
Cycle de développement en Y (suite) MDA? Branche conception Un modèle de conception abstrait Raffiné en modèle de données Complété d un modèle dynamique Branche technique Une architecture technique Une architecture physique Puis fusion des deux branches pour former un modèle spécifique à la plateforme (PSM) Enfin génération du code depuis le PSM.
Exemple de PIM MDA?
Exemple de PDM MDA?
Fusion PIM-PDM MDA?
Exemple de PSM MDA?
Limites MDA? Comment fait-on la fusion? Support des itérations? Incapacité à modifier un modèle de type PSM. Complexité de la transformation permettant d obtenir le PSM? On ne code plus?
Buzz et autres approches MDA? MDSD MDD Software Factories DSM, DSL...
Plan MDA? 1 Mise en bouche... Un modèle? 2 MDA? 3 UML Eclipse 4
MDA? Définition L IDM (Ingénierie dirigée par les modèles) est le domaine de l informatique mettant à disposition des outils, concepts et langages pour créer et transformer des modèles. a a Wikipedia
MDA? Tout modèle est décrit par un langage unique la légende d une carte On peut : Formaliser son propre langage à l aide du langage unique Transformer les informations d un langage à l autre Extraire des informations depuis une source de données vers un langage. Transformer les informations en texte.
Parenthèse MDA? Monde des langages Un langage est défini par une grammaire et une syntaxe Un fichier conforme à un langage donné est un ensemble d informations organisées selon les règles du langage. Monde des modèles Un modèle est défini par un méta-modèle Un modèle conforme à un méta-modèle donné est un ensemble d informations organisées selon les règles de ce dernier.
Comment est défini UML? MDA? Meta Object Facility (MOF) Un langage réduit pour définir des langages dans le monde des langages : la BNF
Comment est défini MOF? MDA? Avec MOF 1 1 Plus d informations dans les prochaines sessions
Opérations de base MDA?
Exemple de génération MDA?
Exemple de transformation MDA?
Résumé MDA? MDA, MDE et IDM. «tout est modèle» Modèles, Méta-modèles représentation des préocupations sous forme de modèle exemple : Cycle de développement en Y exploitation des modèles par les opérations de générations et de transformations
Plan MDA? 1 Mise en bouche... Un modèle? 2 MDA? 3 UML Eclipse 4
à l aide de Modèles MDA? Analyse Définition des concepts Éditeurs métier Contrôle qualité Conception Marquage des modèles Transformation automatique Contrôle qualité Développement Génération automatique Génération incrémentale Tests, documentation,..
Développement sans modèle MDA? Interpretations différentes Flou Résultat non conforme aux attentes
Utilisation d un modèle «documentaire» MDA? Modèle «documentaire» : impression + relecture Travail en double Maintenance du modèle Efficacité?
Génération de code 1 pour 1 MDA? Faible taux de génération Dépendant de la technique modèle proche du code source Reverse engineering rapidement préféré.
Génération incrémentale 1 pour n MDA? Modèle de haut niveau Tout le code technique est généré Le modèle et le code restent cohérents UML n est pas toujours adapté
Génération incrémentale avec langage spécifique MDA? L outil de modélisation s adapte aux utilisateurs Sémantique plus précise : moins de risque d erreur Simplicité et efficacité
Ecueils classiques MDA? Modification du code généré Risque de la re-génération Intégrisme du «tout modèle» Lourdeurs Déconnexion des générateurs en maintenance
Plan UML Eclipse 1 Mise en bouche... Un modèle? 2 MDA? 3 UML Eclipse 4
Plan UML Eclipse 1 Mise en bouche... Un modèle? 2 MDA? 3 UML Eclipse 4
UML : un langage unifié UML Eclipse Analyse fonctionnelle Objets métiers Architecture logique Architecture physique Aspects dynamiques
UML : un langage unifié (suite) UML Eclipse d abord une notation graphique bien connue un ensemble de diagrammes ce n est pas une méthode! un langage formalisé mais pas assez strict autant de façons de modéliser une association que d outils déjà largement outillé
Le méta-modèle UML UML Eclipse défini ce que l on peut modéliser avec UML Classe, Property, Acteur, Operation, Association... complexe
La preuve! UML Eclipse Extrait du méta-modèle UML2
Adapter UML UML Eclipse Enrichir le modèle d informations «Sur-typer» les éléments la classe «Book» est une classe métier
Définitions UML Eclipse Stéréotype Les stéréotypes permettent de définir de nouvelles classes d éléments de modélisation, en plus du noyau prédéfini par UML. a a UML définit un certain nombre de stéréotypes standards TaggedValue Les TaggedValue permettent d enrichir l information contenue dans un modèle en ajoutant de nouveaux attributs. Profile Un Profile est un ensemble de «Stereotype» et de «TaggedValue» que l on peut appliquer à un modèle donné.
Modèle stéréotypé UML Eclipse
Plan UML Eclipse 1 Mise en bouche... Un modèle? 2 MDA? 3 UML Eclipse 4
Un environnement de développement UML Eclipse
Une plateforme UML Eclipse
Un projet Open-Source UML Eclipse Eclipse Modeling team (extrait)
IDM au sein d Eclipse UML Eclipse Eclipse Modeling Framework (EMF) Eclipse Modeling Framework Technology(EMFT) Graphical Modeling Framework (GMF) Model to Text (M2T) Model to Model (M2M)
Outils libres pour Eclipse UML Eclipse Acceleo : tranformations Modèle vers Texte (M2T) Topcased : environnement de modélisation Modeleur UML
Acceleo UML Eclipse Langage de templates pour la génération de texte Syntaxe simple pour la navigation dans le modèle Compatible avec la majorité des modeleurs UML Outillage complet au sein d Eclipse Assistants Coloration syntaxique Completion auto-adaptative Prévisualisation du texte généré
Acceleo - Exemple MindMap UML Eclipse
Topcased UML Eclipse Environnement de modélisation Ecore UML SysML...
Topcased - Exemple DiscStore UML Eclipse
Autres technologies UML Eclipse ATL QVT relations, QVT operational Modélisation textuelle (TCS, XText)...
Plan 1 Mise en bouche... Un modèle? 2 MDA? 3 UML Eclipse 4
Acceleo et le module UML vers PHP Générateur PHP depuis le méta-modèle UML2 Architecture cible en couches : Accès aux données Objets métiers Présentation Technologies utilisées : PearDB Smarty
PHP - diagramme de classe
Couche présentation un template smarty par écran un template smarty par objet métier un contrôleur par écran un index : point d entrée des requêtes
Couche métier/données une classe d accès par type d objet une classe de DTO et de proxy par objet métier mapping PearDB un script sql
Itération Je veux... Rajouter un nouvel objet métier et l associer à un autre objet existant.
Itération (suite) Procédure 1 Modification du modèle UML 2 Lancement de la re-génération 3 Compléter le code Comment ne pas perdre le code ajouté à la main?
Zone de code utilisateur Définition dans le template
Zone de code utilisateur (suite) Dans le code généré...
Conclusion Capitalisation de la technique bonnes pratiques qualité du code et normes de formatage Synchronisation code/modèle Gains de productivité Outil de transmission