MDA en action Ingénierie logicielle guidée par les modèles

Slides:



Advertisements
Présentations similaires
Enjeux Connaissances Solutions Modélisation Conclusion
Advertisements

Langage de modélisation objet unifié
IREMIA : Institut de REcherche en Mathématiques et Informatique Appliquées Université de la Réunion Uniformisation des mécanismes de conception de SMA.
Xavier Blanc Web Services Xavier Blanc
Première expérience d’utilisation des Web Services dans SmartTools Didier Parigot Projet OASIS INRIA Sophia www-sop.inria.fr/oasis/SmartTools Journée.
Thème 3 : plate-forme de modélisation et de gestion de référentiels XML étapes modélisation des structures (UML) gestion du référentiel de modélisation.
19 septembre 2006 Tendances Logicielles MDD/MDA : Génération dapplications avec IBM Rational Software Architect Jean-Pierre Schoch –
19 septembre 2006 Tendances Logicielles IBM Rational Data Architect Un outil complet de modélisation et de conception pour SGBD Isabelle Claverie-Berge.
XML - Henry Boccon-Gibod 1 XML, Langage de description La question du choix de formalismes Les entités et leur représentations modalités de modèles et.
Les logiciels gratuits de modélisation UML sous Linux
L’architecture .net et ASP.net
M.E.D.A.L. Module dEnseignement à Distance pour lArchitecture Logicielle Alain VAILLY Diapositive n° 1 IUP MIAGE - Université de NANTES IUP-MIAGE 3ème.
UML - Présentation.
Composants Logiciels pour Îlots de Palettisation robotisés
1 Les technologies XML Cours 1 : Les Web Services et Architectures Orientées Services Fé vrier Version 1.0 -
Méta-modélisation et Référentiels d’Entreprise
UML (Unified Modeling Langage)
Ce qui est fait Cahier des charges L’analyse de l’application
Les Ateliers de Génie Logiciel
Alain Le Guennec Jean-Marc Jézéquel Action Triskell
Etude des Technologies du Web services
XML-Family Web Services Description Language W.S.D.L.
le profil UML en temps réel MARTE
Analyse Fonctionnelle Structurelle Comportement des systèmes Mécanique
Analyse et Conception orientée objet
Initiation à la conception de systèmes d'information
Sommaire Objectif de Peakup Principes de fonctionnement
Spécification et Vérification de Modèles de Procédés de Développement
UML F. Laperruque INRA – SAGA CATI SICPA.
Services fournis par le SI et technologies associées
Etude globale de système.
Unified Modeling Langage
Présentation du mémoire
Lutin RNTL 2001 – Exploratoire – 3 ans Xavier Blanc –
Portée, arrimages et intervenants Évolution des méthodes
Sensibilisation a la modelisation
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
Patrons de conceptions de créations
1 PLAN I. Eclipse Modeling Framework  Présentation  Le modèle Ecore  Code généré  Utilisation de template II.Graphical Modeling Framework  Présentation.
ANALYSE METHODE & OUTILS
Transformation de modèles Kick Off Motor Jean Marc Jézéquel & Didier Vojtisek La vision Triskell : Umlaut NG.
UML.
Contenus riches et logique d'industrialisation Contenus riches et logique d'industrialisation Modélisation, production, génération, gestion Stéphane Crozat.
Elabore par BELKADHI ABIR BEN HASSEN SALMA CHEBBI MARWA
Logiciel de modélisation Janvier /2014 M3I – S1 2 I Historique II Fonctionnalités III Démonstration IV Conclusion.
Approches Formelles en Systèmes d'information
Algorithmes et Programmation
UML : un peu d’histoire H. Lounis.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
SLAM 1 Exploitation d’un schéma de données
Analyse Fonctionnelle Structurelle Comportement des systèmes Mécanique
2 Processus de conception de BD
Power AMC-Rational Rational Rose, Étude comparative
Unified Modeling Language
ISNET-43 Atelier de génie logiciel Approche fonctionnelle ou objets Concurrence ou complémentarité ? Synthèse.
L’enseignement de spécialité SLAM
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
Réalisé avec le soutien de Pied de page fixe Pied de page 1 Titre Sous titre.
Bruno Traverson (EDF R&D, pilote de ACCORD)
2 Tracks Unified Process
Stage à Ontomantics Master Pro TILDE
(UML) Unified Modeling Language
1 JEE 2010 Architectures n-tiers F.Pfister
Introduction à la Programmation Orientée Objet
UML support à la COO 2ème année IUT Calais-Boulogne Bénédicte Talon
Document de spécification d’exigences Normes IEEE et 29148:2011
Présentation de la méthode Merise
PROJET DE SESSION PRÉSENTÉ PAR : Rosemarie McHugh DANS LE CADRE DU COURS : SCG Réalisation d’applications en SIG 16 avril 2007.
ARIANE : Interopérabilité sémantique et accès aux sources d'information sur Internet Sylvain Aymard, Michel Joubert, Dominique Fieschi, Marius Fieschi.
Transcription de la présentation:

MDA en action Ingénierie logicielle guidée par les modèles Xavier Blanc Université Pierre et Marie Curie Xavier.Blanc@lip6.fr

Plan MDA: Model Driven Architecture Pérennité des savoir-faire Architecture de métamodélisation UML, OCL, AS XMI Gains de productivité JMI & EMF Transformation de modèles Outils Prise en compte des plates-formes d’exécution Profils de plate-forme Métamodèle de plate-forme Etude de Cas: PetStore

MDA: Model Driven Architecture Vue macroscopique

Modèles Besoin de bonnes pratiques et d’objectifs précis Architecture MDA « Modéliser est le futur, et je pense que les sociétés qui travaillent dans ce domaine ont raison »  B. Gates « Obtenir du code à partir d’un modèle stable est une capacité qui s’inscrit dans la durée » R. Soley « A quoi bon modéliser puisque in fine il faudra toujours écrire du code? » « Un bon schéma vaut mieux qu’un long discours … sauf qu’à un schéma (UML) correspond plus d’un long discours ! » Besoin de bonnes pratiques et d’objectifs précis

Pratiques & Objectifs Pratiques Décomposer en niveaux d’abstraction Architecture MDA Pratiques Décomposer en niveaux d’abstraction Automatiser les relations inter/intra niveaux Formaliser les informations contenues dans les niveaux Objectifs Élaboration de nouvelles applications Évolution d’applications existantes Maîtriser l’impact des nouvelles technologies

L’approche Architecture MDA Modèle d’exigences: représente l’application dans son environnement. Modèle d’analyse et de conception abstraite: représente l’architecture de l’application. Modèle de code: représente la construction de l’application. Code de l’application et fichier de configuration.

Architecture Architecture MDA MOF M2 QVT M2 CIM PIM PSM Code Application Informatique

Les moyens Définition de tous les métamodèles de manière uniforme Architecture MDA Définition de tous les métamodèles de manière uniforme Le standard MOF définit le langage de définition des métamodèles Format standard d’import et d’export des modèles Le standard XMI définit les moyens d’import et d’export de tous les modèles selon le format XML Langage de manipulation des modèles Les frameworks JMI/EMF définissent les moyens de représentation des modèles à l’aide de langages de programmation objet. Langage dédié au transformation de modèles Le standard QVT définit le langage d’expression de transformations de modèles

Les résultats Pérennité des savoir-faire Gains de productivité Architecture MDA Pérennité des savoir-faire L’ambition du MDA est de faire en sorte que les modèles (CIM, PIM) aient une durée de vie supérieure au code. L’objectif est donc de fournir des langages de modélisation supportant différents niveaux d’abstraction. Gains de productivité MDA vise à apporter des gains de productivité en automatisant les opérations sur les modèles. L’objectif est donc de faciliter la création d’opérations de production sur les modèles (du contemplatif au productif) Prise en compte des plates-formes d’exécution MDA veut rendre explicite la prise en compte des plates-formes d’exécution dans le cycle de vie des applications. L’objectif est donc de construire des langages permettant de modéliser les plates-formes et de lier ces modèles aux modèles des applications.

Les 3 axes du MDA Architecture MDA pérennité Pour mettre en œuvre le MDA il faut fixer ses priorités selon ces trois axes Il est actuellement trop tôt pour utiliser UML2.0 et être productif. Il est actuellement trop tôt pour pouvoir dire que EMF est pérenne. Il est actuellement trop tôt pour pouvoir expliciter la plate-forme sous forme de modèle. UML2.0 QVT MOF2.0 XMI2.1 GenDoc Profil QoS UML1.4 MOF1.4 EMF Profil EJB JMI Profil Corba productivité UML->Java UML/EJB->J2EE Plate-forme

Pérennité des savoir-faire Architecture et Standard

Métamodèle Pérennité Un métamodèle est essentiellement la définition d’un ensemble de concepts et de leurs relations à l’aide d’un diagramme de classes. Un métamodèle ne définit que la structure et pas la sémantique. Un modèle est une instance d’un métamodèle s’il respecte la structuration définie par le métamodèle. Le métamodèle UML définit les concepts UML et leurs relations. Un modèle UML doit respecter la définition du métamodèle.

Métamétamodèle Pérennité Le MOF définit le langage permettant de définir des métamodèles Les concepts du MOF sont les concepts de métaclasse, méta-attribut, méta-association, etc. MOF peut être défini à l’aide d’un diagramme de classe. Ce diagramme est le métamétamodèle Le métamétamodèle s’auto-définit.

Niveaux Méta Pérennité MOF Les relations entre les niveaux méta sont des relations de définition de structure Les relations entre les niveaux méta ne sont pas des relations d’abstraction. Les relations entre les niveaux méta sont semblables aux relations entre les grammaires (BNF, ou XML Schema) Métamétamodèle UML UML UML Métamodèle Modèle Modèle Modèle Modèle

Infrastructure 2.0 Pérennité UML définit les concepts nécessaires à l’expression des diagrammes de classe MOF définit les concepts nécessaires à l’expression des diagrammes de classe => Capitaliser sur les concepts nécessaires à l’expression des diagrammes de classe : Infrastructure MOF Infra UML L’infrastructure n’a pas de niveau fixe. Cela dépend de qui l’utilise.

UML2.0 Pérennité UML2.0 fait rentrer UML dans MDA, il est bien plus qu’une évolution de UML1.4. UML est actuellement le métamodèle le plus important de l’approche MDA. Sa conception est le fruit de plus de 3 ans de travail collaboratif des meilleurs experts du domaine. C’est le métamodèle qui définit la structuration des modèles des applications informatiques UML2.0 est un métamodèle instance de MOF2.0. La sémantique de UML2.0 est définie à l’aide de langage naturel Les diagrammes UML2.0 sont définis à partir du métamodèle UML2.0 supporte différents niveaux d’abstractions et différents points de vue Cas d’utilisation, Séquences, Structuration Interne, Etats, Déploiement, etc.

Composant UML2.0 Pérennité UML2.0 permet la modélisation intégrale d’applications à base de composants. De l’analyse/conception au déploiement

UML dans MDA Pérennité UML permet principalement de construire des modèles d’applications informatiques indépendants des plates-formes d’exécution (phase d’analyse et de conception abstraite) UML est donc le métamodèle naturel pour les PIM (Platform Independant Model) UML permet aussi de représenter une application dans son environnement afin d’en faire ressortir les exigences (cas d’utilisation) UML peut être utilisé pour les CIM (Computational Independant Model) UML peut être profilé afin de cibler des plates-formes d’exécution (ex: profil pour CORBA, profil pour EJB) UML peut être utilisé pour les PSM (Platform Specific Model) Il serait donc possible d’appliquer MDA en utilisant uniquement UML

Object Constraint Language Pérennité OCL définit la structuration des modèles représentant des contraintes sur les applications informatiques Invariant, Pré-post conditions OCL est un métamodèle instance de MOF OCL est fortement couplé au métamodèle UML OCL définit sa sémantique à l’aide d’un métamodèle (opération sans effet de bord) OCL définit une syntaxe concrète permettant de facilement saisir les contraintes PropertyCallExp > Literal -1000 ModelPropertyCall solde

Action Semantics Pérennité AS définit la structuration des modèles représentant des séquences d’instructions AS est un métamodèle qui a été totalement intégré à UML2.0 AS n’a pas de syntaxe concrète propre (utilisation des diagrammes dynamiques UML) La sémantique d’AS n’est pas formellement définie (RFP en cours)

XMI Pérennité Fonctionnement Le standard XMI (XML Metadata Interchange) permet le passage des modèles aux documents XML Il définit des règles permettant de construire des schéma XML à partir de métamodèle Ainsi il est possible d’encoder un modèle dans un document XML XMI et UML XMI se décline en 6 versions et UML se décline en 4 versions Cela explique pourquoi l’échange de modèle UML en XMI pose quelques problèmes XMI et diagrammes DI (Diagram Interchange) est une extension à XMI et UML qui permet la représentation des diagrammes UML sous forme de document XML.

Synthèse sur la pérennité MOF permet de décrire les métamodèles uniformément Permet la définitions de structuration et leur standardisation (ex: réseaux de Petri) Le métamodèle UML est le métamodèle le plus abouti pour élaborer des modèles d’applications informatiques Les modèles UML sont de très bons PIM (complets et indépendants des plates-formes). OCL et AS sont les métamodèles permettant la définition précise de comportements Ils permettent la construction de modèles UML très précis. XMI permet l’échange de n’importe quel modèle sous forme de document XML Les modèles MDA ont tous une représentation concrète standard

Gains de productivité Framework et outils

API de manipulation Production MDA définit les principes de génération d’API de manipulation de modèles A chaque métamodèle correspond une API de manipulation des modèles instances Les frameworks définissent aussi des API réflectives pour tout métamodèle Métamodèle Interface Java Objets Java modèles

Eclipse Modeling Framework Production Élaboration d’un métamodèle (instance de Ecore) Génération de l’API Interface de manipulation Classes dans l’environnement Eclipse Classes d’éditeur graphique Utilisation directe dans un nouveau environnement Eclipse

Transformation de modèles Production Les transformations de modèles sont le cœur des aspects de production de MDA CIM vers PIM, PIM vers PSM, PSM vers code (sens inverse). Les transformations de modèles sont basées sur les métamodèles Tout composant UML se transforme en une classe PHP. Les constructeurs de plate-forme devraient produire les transformateurs permettant d’exploiter les plates-formes UML vers EJB Les sociétés devraient pouvoir adapter les transformateurs selon leurs propres expériences et leurs propres besoins Ex: ne pas utiliser de composant EJB Entity! Actuellement les transformations de modèles peuvent s’écrire selon trois approches Programmation, Template, Modélisation

Programmation Production La transformation est un programme qui utilise les API de manipulation des modèles UML PHP API UML API PHP lire écrire PetStore PetStore PHP Programme Java

Template La transformation est un template écrit dans un langage dédié Production La transformation est un template écrit dans un langage dédié UML PHP Template pour UML vers PHP PetStore PetStore PHP Interpréteur de template

Modélisation Production La transformation est un modèle instance du métamodèle QVT UML QVT PHP Modèle Transfo PetStore PetStore PHP Programme

Outils industriels Production Actuellement plusieurs outils clament leur adhérence à MDA. Au déla de savoir ce qu’est un outil MDA, il est intéressant de voir que les fournisseurs d’outils sont très actifs sur ce domaine. Nous avons particulièrement pu apprécier deux outils: RSA (Rational Software Architecte) qui supporte MDA en offrant un modeleur UML2.0 et en permettant la définition de transformations de modèles (approche par programmation). Objecteering/MDA Modeler qui supporte MDA en offrant des avantages considérables pour le développement et le packaging d’opérations de production sur les modèles.

Synthèse sur la productivité Production MDA fait passer les modèles du contemplatif au productif Les API de manipulation de modèles sont totalement utilisables en contexte industriel Les transformations de modèles sont réalisables même si actuellement seule l’approche par programmation est pleinement exploitable. Il est important de souligner l’engagement des éditeurs d’outils

Prise en compte des plates-formes d’exécution Framework et outils

Cycle en Y et plate-forme PIM PM Besoins Techniques Exigence PIM Analyse PM Architecture Technique PIM Conception (Abstraite) Explicitation de la plate-forme PSM Conception (concrète) Prise en compte de la plate-forme PSM Conception (fine) Code

Profil ou métamodèle Plate-forme Il n’existe pas de métamodèle permettant de modéliser les plates-formes Un métamodèle de plate-forme définit plutôt la structure de modèles d’applications utilisant les fonctionnalités de la plate-forme On appelle donc ces métamodèles des métamodèles de PSM par exemple le métamodèle EJB définit la structure de modèles d’applications utilisant les fonctionnalités de la plate-forme EJB La transformation cœur de l’approche en Y est donc une transformation entre deux métamodèles (métamodèle du PIM vers métamodèle du PSM) D’où la nécessité de paramétrer le modèle PIM afin de préciser la façon dont utiliser la plate-forme (notion de modèle intermédiaire). Comment savoir si un composant UML doit se transformer en un bean Entity ou Session?

Métamodèle de PSM Approche par profil Approche par métamodèle Plate-forme Approche par profil Le métamodèle de PSM est un profil UML La plate-forme doit donc être proche de UML (orientée objet) Les transformations PIM vers PSM sont facilitées car il existe une sémantique commune (UML) Approche par métamodèle Le métamodèle de PSM est un métamodèle MOF La plate-forme peut donc être très éloignée de UML Les transformations PIM vers PSM sont moins facilitées car les sémantiques PIM et PSM ne sont pas communes Cette approche rend possible les transformations PSM vers PSM (migration de plates-formes)

Étude de Cas PetStore

PetStore selon MDA Étude de Cas PIM vers PSM Java avec MDA Modeler CIM & PIM en UML Intervention Humaine Modèle de transformation PIM vers PSM PSM Java Profil UML PSM PHP Méta-modèle PIM vers PSM Java avec MDA Modeler PIM vers PSM PHP avec RSA public class { } php { }

Pérennité Étude de Cas L’application PetStore a pu être modélisée entièrement en UML2.0 Use Case de l’application Composants de l’application Contrainte OCL sur les opérations (notamment les opérations de recherche) AS pour le comportement (notamment grâce aux nouveaux diagrammes de séquences) Modèle entièrement indépendant des plates-formes d’exécution Modèle échangeable(?) grâce à XMI

Productivité Étude de Cas Le modèle UML de l’application PetStore a pu être manipulé automatiquement pour générer du code et de la documentation RSA: Manipulation Java avec assistants MDA Modeler: Manipulation J avec assistants Malheureusement, il n’est pas encore possible de pouvoir capitaliser les opérations de production

Plate-forme Réalisation de PetStore sur J2EE/EJB Étude de Cas Réalisation de PetStore sur J2EE/EJB Définition du profil EJB Construction des transformations avec MDA Modeler Définition d’un profil de modèles intermédiaires permettant de préciser les choix de transformation Réalisation de PetStore sur PHP Définition d’un métamodèle PHP Construction de générateur de code et de transformation de modèles avec RSA

Conclusion

MDA en action MDA entre dans une phase d’industrialisation La pérennité est aujourd’hui totalement atteinte grâce aux standards MOF, UML, OCL, AS et XMI La productivité des modèles est une réalité. Les progrès annoncés laissent entrevoir un essor considérable (MOF2.0 QVT) La prise en compte des plates-formes reste encore trop à la charge de celui qui met en place l’approche MDA