MDA ( Model Driven Architecture )
Introduction
Model Driven Architecture ● Framework ● Développement de logiciels ● Object Management Group (OMG) ● Basé sur les modèles
Cycle de vie MDA ● Traditionnel ● Phases classiques ● Novateur ● Les livrables sont des modèles formels ● Modèles exploités par des logiciels
Les trois modèles MDA ● Modèle indépendant de la plateforme ● PIM (Platform Independent Model) ● Modèle spécifique à la plateforme ● PSM (Platform Specific Model) ● Code
Niveaux d'abstraction PIM PSM 1 PSM 2PSM n CODE
Étapes de transformation ● Automatisation des transformations ● Toujours par des outils PIM outil de transformati on PSM Code outil de transformat ion
Bénéfices ● Productivité ● Transformation définie une seule fois ● «Portabilité» ● Niveau PIM ● «Interopérabilité» ● Avec les «bridge» MDA ● Maintenance et documentation
Implémentations ● Modèles et outils de modélisation ● Langages standards pour les modèles ● Règles de transformation ● Langages pour décrire les règles ● Outils de transformation ● PIM vers PSM ● PSM vers code
Modèle Langage Modèle Système Est écrit dans Décrit
Types de modèle (1) Modèle de gestion et modèle de logiciel Modèle de gestion Modèle de logiciel Logiciel Département Système de gestion Dérivé de Décrit
Types de modèle (2) Modèles structurels et dynamiques UML Cas d'utilisations Diagrammes d'interactions Diagrammes de classes Système Décrit Est écrit dans
Transformation PIM PSM Code Définition Transformatio n Outil Définition Transformatio n Outil
Le framework MDA Langage PIM PSM Est écrit dans Définition de la transformation Est écrit dans Langage Outil de transformation Est utilisé par
Bi-directionnalité de la transformation Modèle 1 Modèle 2 Définition de la transformation transformation transformation inverse
Exemples simples ● Génération de classes Java ● Outil Poseidon ● Génération des méthodes get et set ● Outil Eclipse ● Génération d'un script SQL ● DBDesigner4
Outils plus ambitieux (1) AndroMDA
Outils plus ambitieux (2) Middlegen boss.bekk.no/boss/middlegen/ Developping database-driven applications with Middlegen is easy: 1-Create the database with your preferred database modeler tool 2-Configure Middlegen to access the database and read the database schema 3-Run Middlegen from Ant, and (optional) with the GUI tool, rename tables and columns, tune relationships and type-mappings 4-Generate your source code with Middlegen 5-Run XDoclet to generate the additional files like EJB homes and interfaces, and deployment descriptors 6-Compile and deploy your application