La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "MDA en action Ingénierie logicielle guidée par les modèles Xavier Blanc Université Pierre et Marie Curie"— Transcription de la présentation:

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

2 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 dexécution Profils de plate-forme Métamodèle de plate-forme Etude de Cas: PetStore

3 MDA: Model Driven Architecture Vue macroscopique

4 Modèles « 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 dun modèle stable est une capacité qui sinscrit 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 quun long discours … sauf quà un schéma (UML) correspond plus dun long discours ! » Besoin de bonnes pratiques et dobjectifs précis Architecture MDA

5 Pratiques & Objectifs Pratiques Décomposer en niveaux dabstraction Automatiser les relations inter/intra niveaux Formaliser les informations contenues dans les niveaux Objectifs Élaboration de nouvelles applications Évolution dapplications existantes Maîtriser limpact des nouvelles technologies Architecture MDA

6 Lapproche Architecture MDA Modèle dexigences: représente lapplication dans son environnement. Modèle danalyse et de conception abstraite: représente larchitecture de lapplication. Modèle de code: représente la construction de lapplication. Code de lapplication et fichier de configuration.

7 Architecture Architecture MDA CIMPIMPSM Code Application Informatique MOF M2QVT M2

8 Les moyens 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 dimport et dexport des modèles Le standard XMI définit les moyens dimport et dexport 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 à laide de langages de programmation objet. Langage dédié au transformation de modèles Le standard QVT définit le langage dexpression de transformations de modèles Architecture MDA

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

10 Les 3 axes du MDA Architecture MDA pérennité productivité Plate-forme XMI2.1 JMI UML2.0 Profil EJB QVT UML->Java MOF2.0 EMF UML1.4 MOF1.4 Profil Corba Profil QoS GenDoc UML/EJB->J2EE 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.

11 Pérennité des savoir-faire Architecture et Standard

12 Métamodèle Pérennité Un métamodèle est essentiellement la définition dun ensemble de concepts et de leurs relations à laide dun diagramme de classes. Un métamodèle ne définit que la structure et pas la sémantique. Un modèle est une instance dun métamodèle sil 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.

13 Métamétamodèle 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 à laide dun diagramme de classe. Ce diagramme est le métamétamodèle Le métamétamodèle sauto- définit. Pérennité

14 Niveaux Méta Pérennité MOFUMLModèle Métamétamodèle UML Métamodèle Modèle 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 dabstraction. Les relations entre les niveaux méta sont semblables aux relations entre les grammaires (BNF, ou XML Schema)

15 Infrastructure 2.0 Pérennité MOFInfraUML UML définit les concepts nécessaires à lexpression des diagrammes de classe MOF définit les concepts nécessaires à lexpression des diagrammes de classe => Capitaliser sur les concepts nécessaires à lexpression des diagrammes de classe : Infrastructure Linfrastructure na pas de niveau fixe. Cela dépend de qui lutilise.

16 UML2.0 UML2.0 fait rentrer UML dans MDA, il est bien plus quune évolution de UML1.4. UML est actuellement le métamodèle le plus important de lapproche MDA. Sa conception est le fruit de plus de 3 ans de travail collaboratif des meilleurs experts du domaine. Cest 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 à laide de langage naturel Les diagrammes UML2.0 sont définis à partir du métamodèle UML2.0 supporte différents niveaux dabstractions et différents points de vue Cas dutilisation, Séquences, Structuration Interne, Etats, Déploiement, etc. Pérennité

17 Composant UML2.0 Pérennité UML2.0 permet la modélisation intégrale dapplications à base de composants. De lanalyse/conception au déploiement

18 UML dans MDA UML permet principalement de construire des modèles dapplications informatiques indépendants des plates-formes dexécution (phase danalyse 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 den faire ressortir les exigences (cas dutilisation) UML peut être utilisé pour les CIM (Computational Independant Model) UML peut être profilé afin de cibler des plates-formes dexécution (ex: profil pour CORBA, profil pour EJB) UML peut être utilisé pour les PSM (Platform Specific Model) Il serait donc possible dappliquer MDA en utilisant uniquement UML Pérennité

19 Object Constraint Language 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 à laide dun métamodèle (opération sans effet de bord) OCL définit une syntaxe concrète permettant de facilement saisir les contraintes Pérennité PropertyCallExp > Literal ModelPropertyCall solde

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

21 XMI 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 dencoder 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. Pérennité

22 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 dapplications 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 nimporte quel modèle sous forme de document XML Les modèles MDA ont tous une représentation concrète standard Pérennité

23 Gains de productivité Framework et outils

24 API de manipulation MDA définit les principes de génération dAPI 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 Production Métamodèle modèles Interface Java Objets Java

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

26 Transformation de modèles 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 dexploiter 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 Production

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

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

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

30 Outils industriels Actuellement plusieurs outils clament leur adhérence à MDA. Au déla de savoir ce quest un outil MDA, il est intéressant de voir que les fournisseurs doutils 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 dopérations de production sur les modèles. Production

31 Synthèse sur la productivité 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 lapproche par programmation est pleinement exploitable. Il est important de souligner lengagement des éditeurs doutils Production

32 Prise en compte des plates- formes dexécution Framework et outils

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

34 Profil ou métamodèle Il nexiste 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 dapplications 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 dapplications utilisant les fonctionnalités de la plate-forme EJB La transformation cœur de lapproche en Y est donc une transformation entre deux métamodèles (métamodèle du PIM vers métamodèle du PSM) Doù 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? Plate-forme

35 Métamodèle de PSM 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) Plate-forme

36 Étude de Cas PetStore

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

38 Pérennité Lapplication PetStore a pu être modélisée entièrement en UML2.0 Use Case de lapplication Composants de lapplication 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 dexécution Modèle échangeable(?) grâce à XMI Étude de Cas

39 Productivité Le modèle UML de lapplication 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 nest pas encore possible de pouvoir capitaliser les opérations de production Étude de Cas

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

41 Conclusion

42 MDA en action MDA entre dans une phase dindustrialisation La pérennité est aujourdhui 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 lapproche MDA


Télécharger ppt "MDA en action Ingénierie logicielle guidée par les modèles Xavier Blanc Université Pierre et Marie Curie"

Présentations similaires


Annonces Google