Model Driven Architecture L'approche par les Modèles « Un pont entre les îlots de savoir » Plan Qu’est-ce Qu’un modèle ? Pourquoi UML ? Genèse des modèles ? MDA : Motivations Typologie des modèles de référence Principes Un cas concret 15' : Démonstration Objecteering MDAC Swing 20' : ECHANGES : Annexe : Différentes sources d’information Qu’est-ce qu’un modèle ? Ingénierie Dirigée par les Modèles pour les SoCs Un abstraction ou une simplification de la réalité, pour bien/mieux comprendre le système à développer. Un modèle ne représente pas toute la réalité, mais au plus /mieux l’aspect économique que l’on souhaite exploiter. Une vue, un diagramme, un plan ne sont pas des modèles mais des représentations du modèle. Il s’agit d’une projection d’un hyper espace (le modèle) afin de simplifier ce que l’on veut présenter. Anne Etien Maître de Conférences INRIA – Projet DaRT [email protected] Présentation : Pourquoi UML Langage formel Langage de langage Enrichissable Simple, Structuré Complet Graphique Unified Modeling Language Xavier Blanc [email protected] UML n’est pas une méthode, mais la boite à outil des méthodes Objet (UP, PRAXEME) Introduction : la genèse des modèles Glossaire Dérivations Praxeme Dictionnaire Métriques Projet Modèle Modèle Modèle Spécs * * Suivi Modèle Test Documentations Contrôles EJB Test Doc Code Code Code Code Qu’est ce qu’un modèle ? Le code est le modèle Le code et le modèle coexistent le modèle est le code 2 3 4 1 Code Corba Laissez nous concevoir 5 MDA : Comment Modéliser Pilotage Architecture Avec de la matière première Production Pilotage en réseau Rationalisation des moyens Structures de production Indicateurs de Performance Du Formalisme et des Règles Des ateliers de transformations Objets Métiers XML XSD UML XMI Patrimoine U.O Processus procédure SOA BPM BPEL Générations Dérivations Des objectifs Des compétences De la technologie De la motivation Une organisation Étude Ambitieux Fédérateurs Réalisables Normés dans le temps Et de la méthode … Outils Normalisation Best practices projets Indicateurs Métriques Livrables Composants Oracle SQL C++ Java .Net Des hommes une équipe Focus : Les indicateurs de performances On a atteint la cible avec succès, mais on aurait pu l’atteindre plus vite, à l’aide d’information de pilotage au fil de l’eau Définition Objectif Limite Liste des mesures Liste des KPI Sur l’activité globale, je suis bon Je le sais et je le prouve … Marginalement, sur l’activité OMEGA, je peux faire mieux. D’ailleurs, j’ai identifié des leviers d’amélioration… MDA : Motivations Faire évoluer les systèmes de façon flexible Réutiliser les travaux d’architecture, de codage, …les bonnes pratiques, les standards Les modèles sont plus pérennes que le code Les modèles permettent l’échange à tous les niveaux ce que le seul code ne permet pas Le travail en équipe est plus efficace que le travail d’un ensemble d’acteurs isolés Minimiser l’effort de conception aval en modélisant en amont l’ensemble des exigences de solutions métiers. Assurer la traçabilité des exigences métiers Assurer l’intégrité et la cohérence entre les phases projet Présentation : Typologie de Modèle Plusieurs acteurs plusieurs points de vues plusieurs modèles CIM (Computational Independent Model) PIM (Plaform Independent Model) Indépendant de tout système informatique C’est le modèle métier ou le modèle Pérenne dans le temps Indépendant de de la plate-forme technique. Modèle informatique qui représente une vue partielle d’un CIM Représente la logique fonctionnelle du métier Il décrit le système, à l’aide des classes et de OCL PSM (Platform Specific Model) Dépendant de la plate-forme technique Sert de base à la génération de code Est un module de transformation ou de dérivation Se nomme MDAC en Objecteering MDA : les principes • Comment passer d’un PIM à un PSM • La transformation de modèle • Formaliser les règles de transformation • Formaliser le contenu des modèles Méta Modèle • Définir des annotations pour capter les spécificités d’une technologie : les tagged values, les stéréotypes • Réunir les annotations compatibles entre elles les profils UML de l’OMG • Persistence, J2EE, … • Ajouter les règles de transformation spécifique aux outils : les MDAC d’Objecteering MDE : Model Driven Engeniering • Industrialisation de la transformation de modèle • Avantages • Changer de profiles pour changer de techno • Garder l’indépendance métier/techno MDE : Model Driven Engeniering • Le processus en Y • Le processus en arrête de poisson • L’application à PRAXEME Analyse Modèles Sémantique + pragmatique Modèles Organisationnel + logique Mapping objet relationnel +MPD Framework + EJB Solveur de contraintes implémentation Scoping Praxeme Pourquoi ça pourrait marcher mieux ? • Réversibilité d’un PSM vers un PIM • Comment faire évoluer un système par ajout et modification des PIMs sans être pollué par les contingences métiers • La ré-application « intelligente » des transformations pour ne pas écraser ce qui a été ajouté après la transformation. Model Driven Architecture Un cas concret Le projet Règlements Scoping Modèle sémantique : exemple Scopin g Exemple : Module documentaire Le profil sémantique (scope manager) Scopi ng Modèle pragmatique(1) : exemple Scoping Modèle pragmatique(2) : exemple Scoping Modèle Logique (1) : exemple Composants et interfaces Composants et services Scoping Modèle Logique (2) : exemple Règles de gestions Traceabilité Règles - Services Scoping Modèle Logique (3) : exemple Traceabilité Sémantique - Logique Automate d’états Scoping Génération Documentaire Logique Scoping Modèle Technique (1) : exemple Framework JAMOS La méthodologie est basée sur AMOS (PRAXEME) L’architecture J2EE a été définie par l’équipe technique Les choix techniques sont implémentés dans le framework Le framework SMABTP permet de choisir le type de déploiement au moment du déploiement : Full POJO (Plain Old Java Object ie objet java simple) En EJB, pour les MLOs et Ateliers Le développeur ne choisit plus la méthodologie, l’architecture ou les technologies à mettre en oeuvre (comme dans un projet classique) Le développeur code uniquement en mode POJO (gain de temps par rapport aux EJBs) Le développeur se concentre uniquement sur le fonctionnel Architecture Présentation Technique Log Habilitation Framework MVC (Ecensity Presentation Server) MLO Factory Gestion du contexte IHM Factory Atelier Factory MLM Factory Organisation Gestion transactionnelle POJO EJB Machine Logique Organisationnelle (MLO) Métier Data Architecture Object (DAO) Hibernate JRules EAI (via MQ) Configuration EPS Atelier Machine Logique Métier (MLM) Domaines externes SGBD Editique Broker d’intégration Scoping Transformation Logique – Logiciel (1) Lien avec le framework JAMOS Scoping Transformation Logique – Logiciel (2) Implémentation des design patterns Scoping Transformation Sémantique – Logique (1) Modèle Logique de données SQL Scoping Génération Logique – Logiciel (2) Mapping O/R - Hibernate Scoping Génération Logique – Logiciel (1) Fichier de configuration Scoping Génération Logique – Logiciel (2) Génération pour JRules Paramétrage des règles métier Scoping Génération Logique – Logiciel (3) Génération Java/J2EE Code Java MDA : Différentes sources d’information Ingénierie Dirigée par les Modèles pour les SoCs Anne Etien Maître de Conférences INRIA – Projet DaRT [email protected] Sodifrance MDA : Mise en œuvre industrielle Génie logiciel et l’approche par les modèles