MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. ·...

33
MDA (Model DrivenArchitecture) MDA (Model DrivenArchitecture) Ingénierie logicielle guidée par les Ingénierie logicielle guidée par les Ingénierie logicielle guidée par les Ingénierie logicielle guidée par les modèles modèles S.N

Transcript of MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. ·...

Page 1: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

MDA (Model Driven Architecture)MDA (Model Driven Architecture)Ingénierie logicielle guidée par les Ingénierie logicielle guidée par les Ingénierie logicielle guidée par les Ingénierie logicielle guidée par les modèlesmodèles

S.N

Page 2: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

Historique:Historique:En 2000 l’OMG propose une approche nommée MDA Model Driven Architecture, S’appuyant sur le standard UML pour décrire: décrire:

parties des systèmes indépendantes des plates-formes spécifiques (PIM ou Platform Independant Models) parties liées à ces plates-formes (PSM ou Platform Specific Models).

Page 3: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

Historique:Historique:

Il s’agissait de parier sur la stabilité possible de ce standard, pour que l’on puisse reprendre dans 5, 10 ou 15 ans des descriptions abstraites en UML (modèles descriptions abstraites en UML (modèles métier) Et générer à partir de celles-ci des systèmes exécutables sur les plateformes technologiques du futur.

Page 4: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

Ingénierie dirigée par les modèles Ingénierie dirigée par les modèles C’est quoi?C’est quoi?

Se fonde sur l’utilisation massive des modèles.Séparation des préoccupations entre la logique métier des systèmes logique métier des systèmes informatiques et les plates-formes utilisées.On automatise les transformations entre différents modèles (aspects , niveaux d’abstraction).

Page 5: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

Ingénierie dirigée par les modèles Ingénierie dirigée par les modèles C’est quoi?C’est quoi?

L’élément de base n’est plus l’objet : c’est le modèle

Laprimauté des modèles dans cette approche est ce quiLaprimauté des modèles dans cette approche est ce quidifférencie principalement MDA des approchesclassiques de génie logiciel telles que OMT (ObjectManagement Technique), OOSE (Object OrientedSoftware Engineering) ou BCF (Business ComponentFactory), qui placent les objets ou les composants aupremier plan.

Page 6: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

L’architecture MDAL’architecture MDASur la Figure, l’architecture du MDA se découpe en quatre couches. Dans la première couche, se trouvent les standard UML, MOF et CWM.Dans la couche suivante, se trouveaussi un standard XMI qui permet le dialogueentre les middlewares (Java, CORBA, .NET et web services). .NET et web services). La troisième couche contient les servicesqui permettent de gérer les évènements,la sécurité, les répertoires et lestransactions. Enfin, la dernière couche propose des Framework adaptables à différents types d’applications à savoir finances, télécommunication, transports, espace, médecine, commerce électronique et de fabrication,…)

Page 7: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

L’architecture MDAL’architecture MDA• Les modèles:Spécifier différents niveaux d’abstraction,

facilitant la gestion de la complexité inhérente aux applications. ◦Très abstraits: pour présenter l’architecture générale ◦Très abstraits: pour présenter l’architecture générale

d’une application ou sa place dans une organisation◦Très concrets: permettent de spécifier précisément

des protocoles de communication réseau ou des algorithmes de synchronisation

Même si les modèles se situent à des niveaux d’abstraction différents, il est possible d’exprimer des relations de raffinement entre eux. Ces relations sont garantes de la cohérence d’un ensemble de modèles représentant une même application.

Page 8: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

L’architecture MDAL’architecture MDAL’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité, la productivité et la prise en compte des plateformes d’exécution. Afin de permettre la génération automatique de la totalité du code des applications et d’obtenir un gain significatif de productivité.Le principe clé de MDA consiste en l’utilisation de Le principe clé de MDA consiste en l’utilisation de modèles aux différentes phases du cycle de développement d’une application. Plus précisément, MDA préconise l’élaboration de:◦ Modèles d’exigences (CIM Computation Independent

Model), ◦ Modèles d’analyse et de conception (PIM Platform

independent model).◦ Modèles de code (PSM Platform Specific Model).

Page 9: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

Qu’est ce que CIM? PIM? PSMQu’est ce que CIM? PIM? PSMCIM: littéralement « modèle indépendant de la programmation », ou modèle d’exigences peuvent être considérés comme des éléments contractuels, destinés à servir de référence lorsqu’on voudra s’assurer qu’une application est conforme aux demandes du client.

Avec UML, un modèle d’exigences peut se résumer à un Avec UML, un modèle d’exigences peut se résumer à un diagramme de cas d’utilisation. Ces derniers contiennent en effet les fonctionnalités fournies par l’application (cas d’utilisation) ainsi que les différentes entités qui interagissent avec elle (acteurs) sans apporter d’information sur le fonctionnement de l’application.

Dans une optique plus large un modèle d’exigences est considéré comme une entité complexe, constituée entre autres d’un glossaire, de définitions des processus métier, des exigenceset des cas d’utilisation ainsi que d’une vue systémiquede l’application.

Page 10: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

Qu’est ce que CIM? PIM? PSMQu’est ce que CIM? PIM? PSMPIM: ou modèle d’analyse et de conception abstraiteDans l’approche MDA, cette phase utilise elle aussi un modèle. Cette étape consiste à structurer l’application en modules et sous-modules, et dans laquelle est appliqué les patrons de conception ou Design Patterns du Gang of Four (GoF). Nous ne considérons donc ici que laconception abstraite, c’est-à-dire celle qui est réalisable conception abstraite, c’est-à-dire celle qui est réalisable sans connaissance aucune des techniques d’implémentation.Le rôle des modèles d’analyse et de conception est d’être pérennes et de faire le lien entre le modèle d’exigences et le code de l’application.Ces modèles doivent par ailleurs être productifs puisqu’ils constituent le socle de tout le processus de génération de code défini par MDA. Ce qui signifie qu’ils doivent être suffisamment précis et contenir suffisamment d’informations pour qu’une génération automatique de code soit envisageable.

Page 11: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

Qu’est ce que CIM? PIM? PSMQu’est ce que CIM? PIM? PSMPSM: ou modèle de code ou de conception concrète MDA considère que le code d’une application peut être facilement obtenu à partir de modèles de code. La différence principale entre un modèle de code et un modèle d’analyse ou de conception réside dans le fait que le modèle de code est lié à une plate-forme d’exécution. Dans le vocabulaire MDA, ces modèles de code sont appelés des PSM (Platform Specific Model). Les modèles de code contiennent toutes les informations nécessaires à l’exploitation contiennent toutes les informations nécessaires à l’exploitation d’une plate-forme d’exécution, La différence entre le code des applications et les modèles de code, pour MDA, est que le premier se résume à une suite de lignes textuelles, comme un fichier Java, alors qu’un modèle de code est plutôt une représentation structurée incluant, par exemple, les concepts de boucle, condition, instruction, composant, événement, etc. Il est à noter qu’il est important de bien établir les liens de traçabilité entre ces modèles. En fait, MDA établit ces liens automatiquement grâce à l’exécution de transformations des modèles.

Page 12: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

Transformation des modèlesTransformation des modèlesLes transformations de modèles préconisés par MDA sont essentiellement des transformations CIM PIM et PIM PSM.L’importance des transformations de modèles réside dans l’intelligence du processus méthodologique de construction d’application qu’elles portent. Elles sont stratégiques et font partie du savoir-faire de construction d’application qu’elles portent. Elles sont stratégiques et font partie du savoir-faire de l’entreprise ou de l’organisation qui les exécute, car elles détiennent les règles de qualité de développement d’applications.Conscient de cela, MDA préconise de modéliser les transformations de modèles elles mêmes, afin de générer automatiquement le code de la transformation.

Page 13: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

Transformation des modèlesTransformation des modèles

Il y a principalement 4 méthodes de transformation de modèle:◦Transformation manuelle◦Transformer à l’aide de profile UML◦Transformer à l’aide de profile UML

qui peut contenir des marques, mappings,des spécifications

◦Transformation à l’aide de patterns◦Transformation automatique

Page 14: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

Architecture générale de l’approche Architecture générale de l’approche MDAMDA ::

Page 15: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

Technologies de modélisationTechnologies de modélisationLe formalisme de modélisation MOF (Meta Object Facility)L’objectif est de disposer d’un formalisme permettant l’expression de modèles de formalismes de modélisation. Ici un tel formalisme est appelé un de modélisation. Ici un tel formalisme est appelé un métaformalisme, et les modèles qu’il permet d’exprimer sont appelés des métamodèles. Nous pouvons donc faire une analogie entre métamodèles et formalismes de modélisation.

Le seul métaformalisme dans MDA est le MOF aussi appelé métamétamodèle

Page 16: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

Rôle d’UML dans MDARôle d’UML dans MDALe métamodèle UML est le métamodèle le plus connu de l’approche MDA, il constitue le métamodèle idéal pour l’élaboration des PIM. Les profils UML ciblant des plates-formes d’exécution ne ciblant des plates-formes d’exécution ne sont plus des modèles indépendants des plateformes d’exécution mais au contraire des modèles dépendants de ces plateformes, ces modèles ne sont donc plus des PIM mais des PSM.

Page 17: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

Modélisation de la transformation Modélisation de la transformation de modèles avec QVTde modèles avec QVT

L’OMG a élaboré le standard MOF2.0 QVT (Query, View, Transformation).Ce standard définit le métamodèle permettant l’élaboration de modèles de transformation. La transformation d’UML vers la plate-forme Java, par exemple, est élaborée sous la forme d’un modèle exemple, est élaborée sous la forme d’un modèle de transformation conforme au métamodèle MOF2.0 QVT. Pour simplifier, disons qu’un modèle de transformation est considéré comme une fonction prenant un modèle en entrée et rendant un modèle en sortie.

Page 18: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

Liens vers XML et Java avec XMI, Liens vers XML et Java avec XMI, JMI et EMFJMI et EMF

Grâce aux standards XMI et JMI et au Framework EMF, il est possible de représenter informatiquement tout modèle.XMI concrétise la pérennité des modèles en ce qu’il offre un format de représentation XML.JMI et EMF sont les socles opérationnels de MDA en ce qu’ils permettent la construction d’opérations de JMI et EMF sont les socles opérationnels de MDA en ce qu’ils permettent la construction d’opérations de productivité sur les modèles.XMI est considéré comme étant le seul standard capable d’assurer les échanges de modèles. XMI est donc aussi porteur de pérennitéLe standard MOF2.0 QVT, par exemple, peut être vu comme un standard qui utilise JMI et EMF en proposant un langage de haut niveau pour exprimer les transformations de modèles

Page 19: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

Etude de cas: Java PetStore de SunEtude de cas: Java PetStore de Sun

Le choix a été fait de présenter les modèles CIM et PIM de cetteapplication sous forme de modèles UML. Le CIM est représenté par undiagramme de cas d’utilisation tandis que le PIM est représenté par desdiagrammes de composants et de séquence,des contraintes OCL et desexpressionsAS.

Page 20: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

CIMCIM : modèle des exigences représenté : modèle des exigences représenté par un diagramme de cas d’utilisationpar un diagramme de cas d’utilisation

Page 21: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

PIMPIM : diagramme de composants: diagramme de composants

Composants de l’application

Page 22: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

Séquence type de commande de produitsSéquence type de commande de produits

Page 23: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

Transformation UML2.0 vers EJBTransformation UML2.0 vers EJBPour réaliser la première partie de la transformation UML2.0 vers EJB, ils ont utilisé un module développé dans le projet de R&D RNTL. Ce module permet de transformer les modèles de composants UML2.0 en modèles UML1.3. Ils n’ont eu à adapter que légèrement ce module car il supportait déjà toutes les solutions de transformation.les solutions de transformation.Ils ont utilisé MDA Modeler pour réaliser l’autre partie de la transformation.Un générateur de code est proposé par MDA Modeler dans son module EJB, il permet de construire les codes Java des EJB modélisés avec le profil UML pour EJB.

Page 24: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

Exécution de la transformationExécution de la transformation

Pour exécuter la transformation UML2.0 vers EJB sur PetStore, Ils ont commencé par transformer le modèle UML2.0 en un modèle UML1.3, puis ils ont transformé le modèle UML1.3, puis ils ont transformé le modèle UML1.3 en un modèle EJB après avoir ajouté les stéréotypes et tagged-values nécessaires à la transformation.

Page 25: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

Analyse du résultatAnalyse du résultatGrâce à cette mise en application de MDA, on a pu générer de façon semi-automatique les squelettes de code des EJB correspondant aux composants UML2.0 de PetStore. UML2.0 de PetStore. Ces squelettes de code contiennent toute la partie structurelle de l’application PetStorepour la plate-forme J2EE/EJB et respectent les contraintes syntaxiques de cette plate-forme

Page 26: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

Transformation UML2.0 vers PHPTransformation UML2.0 vers PHP

Pour réaliser la transformation UML2.0 vers PHP, il a fallu intégrer le métamodèle PHP dans RSM puis réaliser le profil des modèles intermédiaires et enfin la transformation UML2.0 vers PHP.Grâce à cette intégration du métamodèle PHP dans RSM, on a pu élaborer un générateur de Grâce à cette intégration du métamodèle PHP dans RSM, on a pu élaborer un générateur de code. Pour cela, on a utilisé le mécanisme de génération de texte de RSM avec l’API tayloredgénérée à partir du métamodèlePHP.Pour la transformation UML2.0 vers PHP, on a utilisé le mécanisme de transformation de modèle de RSM

Page 27: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

Exécution de la transformationExécution de la transformationPour exécuter la transformation UML2.0 vers PHP sur PetStore, on a ajouté tous les stéréotypes et tagged-values nécessaires au modèle de composants de PetStorepuis appliqué la transformation sur ce modèle.appliqué la transformation sur ce modèle.À partir de ce modèle, nous avons appliqué la génération de code PHP pour obtenir les squelettes de code de l’application PetStore. Nous avons complété ces squelettes par les codes dynamiques afin de finir la réalisation de l’application PetStoredans PHP.

Page 28: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

Analyse du résultatAnalyse du résultatTout comme pour EJB, grâce à cette mise en application de MDA, nous avons pu générer de façon semi-automatique les squelettes de code PHP correspondant aux composants UML2.0 de PetStore. Ces squelettes de code contiennent toute la partie structurelle de l’application PetStoreet sont liés à la plate-forme PHP.toute la partie structurelle de l’application PetStoreet sont liés à la plate-forme PHP.Ce résultat est tout aussi remarquable, sinon plus, que celui obtenu avec EJB. Il montre que les principes de MDA valent aussi sur des plates-formes non-objet. Le code PHP est fortement lié au modèle UML, et l’écart entre modèle et code est quasiment inexistant ou, du moins, se retrouve spécifié dans la transformation UML vers PHP.

Page 29: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

Avantages de la MDAAvantages de la MDALa pérennisationde la logique métier de l’entreprise grâce à l’élaboration de modèles, afin de permettre aux entreprises de capitaliser sur leur métier sans avoir à se soucier de la technique.soucier de la technique.La productivité: permet aux développeurs, architectes, aux administrateurs de systèmes d’utiliser un langage et des concepts communs facilitant la communication et l’intégration à travers les équipes

Page 30: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

Avantages de la MDAAvantages de la MDALa prise en compte des plates-formes d’exécution grâce à l’intégration de celles-ci dans les transformations de modèlesPortabilité◦Augmente la réutilisation◦Augmente la réutilisation◦Réduit les coûts et la complexité du

développement et la gestion de système

La plus grande facilité d'intégration des applications et des systèmes autour d'une architecture partagée.

Page 31: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

Limites du MDALimites du MDAPour l’instant, les outils disponibles couvrent surtout la partie génération de code et sont souvent d’une utilisation ardue. De plus, ils ne communiquent pas avec d’autres outils de gestion du processus projet tels que la gestion du changement ou des exigences. En effet, l’aspect organisationnel est peu abordé dans MDD et changement ou des exigences. En effet, l’aspect organisationnel est peu abordé dans MDD et MDA.MDA ne spécifie pas comment convertir tous les types de PIM en un ou plusieurs PSM. Ainsi plusieurs vendeurs utilisent des tags ou d’autres méta-donnéespour que les différents PSM soient générés.

Page 32: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

ConclusionConclusionLa solution MDA permet l’automatisation des relations inter et intra modèles, entre l’analyse et l’implémentation. Elle optimise le cycle de développement et permet de mieux répartir les rôles. Elle simplifie la vision de répartir les rôles. Elle simplifie la vision de l’architecture facilitant les changements et l’analyse des impacts. Le rôle d’architecte logiciel devient essentiel. Enfin la traçabilité attendue et la vraie productivité « sans effort »

Page 33: MDA (Model Driven Architecture) Ingénierie logicielle guidée par … · 2014. 5. 22. · L’approche MDA vise à mettre en valeur les qualités intrinsèques des modèles: la pérennité,

Bibliographie:Bibliographie:Xavier Blanc (2005) MDA en action: Ingénierie logicielle guidée par les modèles, Eyrolles.WikepediaYves Perreault et Jerry Molin, 18 mars 2008, Présentation MDA-MDE: Cours Modélisation des SI et de la connaissance. Lien: http://zonecours.hec.ca/.../H2008-1-1567432.Yves_Perreault_Jerry_Molin_MDA-MDE.pptxMounir GRARI (2007) Principes et états de l’art de l’approche MDA et Mounir GRARI (2007) Principes et états de l’art de l’approche MDA et applications pour des plates-formes PHP orienté 3-tiers, pour l’obtention d’un DESA à l’UFR. Lien: http://wwwesto.ump.ma/mounir/mda/memoire/rapport%20memoire%20mda%20anits%20GRARI%20Mounir.docMagazine Programmez 01-03-2008 www.mia-software.com/.../Testimony/Programmez_01.03.08.pdfSerge Salicki, THALES, Ingénierie logicielle orientée modèle – MDD, lien: www.carroll-research.org/.../3%20-%20CARROLL-Bilan-IDM.pdfIt expert n°51 septembre octobre 2004 http://atlanmod.emn.fr/www/papers/IT-expert qdnd.pdf