• Aucun résultat trouvé

Architecture de l’approche MDA

La Figure 4.2 montre bien l’architecture générale de l’approche MDA. On voit que cette architecture est constituée de plusieurs niveaux. Chacun est formé d’un ensemble de modèles. Le premier niveau contient un ou plusieurs modèles d’exigences (CIM), puisque chaque application doit commencer par l’élabora-tion des besoins de client. Dans le deuxième niveau, on trouve les modèles de conception et d’analyse (PIM). Théoriquement, ces modèles doivent être générés à partir des modèles CIM pour assurer les liens de traçabilité entre les modèles. Le troisième niveau contient des modèles qui permettent de réaliser l’application. Ces modèles sont obtenus par une transformation des modèles PIM en y ajou-tant les informations techniques relatives aux plateformes d’exécution (PSM). Le dernier niveau représente le code de l’application qui est généré à partir des mo-dèles PSM. L’approche MDA ne considère pas la génération de code comme une transformation, mais plutôt une traduction des modèles PSM dans un forma-lisme textuel [Xavier 2005].

Chapitre 4. Ingénierie Dirigée par les Modèles

Figure 4.2 – Architecture de l’approche MDA (Xavier,2005)

D’après la Figure 4.2, on peut noter que la vocation de l’approche MDA ne se limite pas à la création de nouvelles applications, mais aussi elle procure d’autres fonctionnalités, à savoir la rétro-conception d’applications existantes, et ceci est effectué par des transformations inverses entre les modèles [Xavier 2005]. L’objectif implicite de MDA est de gérer les transformations entre les différents modèles du système. Par exemple, produire des modèles et des codes pour des plateformes spécifiques (PSM) à partir des modèles d’abstraction plus élevés qui sont développés indépendamment d’une plateforme particulière (PIM), c.à.d., la transformation d’un PIM vers PSM, et par la suite, dériver le code directement à partir de ce dernier ; ce processus est le cœur de MDA et il est connu sous le nom de l’ingénierie directe dirigée par les modèles IDM (en anglais MDE). Il comporte les étapes suivantes : élaborer un CIM, transformer le CIM en un PIM, puis transformer le PIM en un ou plusieurs PSM, et finalement générer le code directement à partir des PSM [Favre 2010].

OMG offre le standard MOF (Meta Object Facility), qui est un Framework qui permet de représenter ou définir les méta-modèles. Il fournit une gamme de ser-vices aux développeurs afin de faciliter le développement et l’interopérabilité des systèmes dirigés par les modèles[OMG 2007].

Un méta-modèle est un langage abstrait pour représenter différents types de modèles et de données. Le Framework de méta-modélisation est basé sur des ar-chitectures à quatre niveaux, à savoir le modèle objet, le modèle, le méta-modèle et le méta-méta-modèle [Favre 2010].

4.3.1 Le modèle d’exigences CIM (Computation Independent Model)

Le modèle d’exigences représente la première phase dans le cycle de dévelop-pement d’une application. Il permet de décrire les demandes du client. Il peut même être considéré comme une référence lorsqu’on voudra s’assurer qu’une application est conforme aux exigences du client. Il représente aussi l’application dans son environnement afin d’identifier les services offerts par l’application. L’utilisation d’un tel modèle a une importance capitale. Cela est illustré dans les liens de traçabilité avec les modèles qui seront construits dans les autres phases

dans le cycle de développement de l’application.

Notons que dans le vocabulaire de l’ingénierie dirigée par les modèles, ce modèle est appelé le modèle indépendant de la programmation (en anglais, Computa-tion Independent Model (CIM)). Cela signifie que les modèles d’exigences ne contiennent aucune information, ni sur la réalisation, ni sur les traitements. Dans le langage UML, le modèle d’exigences est réalisé grâce à un diagramme de cas d’utilisation. Car ce diagramme permet de représenter les fonctionnali-tés fournies par l’application à l’aide des cas d’utilisation, ainsi que les entifonctionnali-tés qui interagissent avec elles à travers les acteurs. Cela est fait sans apporter de l’information sur le fonctionnement de l’application [Xavier 2005].

4.3.2 Le modèle abstrait d’analyse et de conception PIM (Platform Inde-pendent Model)

Après le modèle d’exigences, vient une phase cruciale qui est l’analyse et la conception. Cette phase est réalisée par plusieurs méthodes, telles que les méthodes classiques : Merise et Coad/Yourdon, et les méthodes objet : Schlear et Mellor, OMT, OOSE et Booch, et UML. Chaque méthode représente le système par ses propres modèles.

Parfois, on utilise des patterns ou modèles de conception (Design Patterns) du GoF (Gang of Four) dans la conception, afin de structurer l’application en modules et sous modules. Ces modèles sont dédiés à certaines plateformes. Par contre, dans les modèles PIM (Platform Independent model), nous ne considé-rons que la conception abstraite, c’est-à-dire, l’utilisation des modèles qui sont réalisés sans aucune connaissance des techniques d’implémentation.

L’approche MDA a préconisé d’utiliser le langage UML pour établir les modèles d’analyse et de conception, puisqu’elle est indépendante de toutes les plate-formes d’implémentation (J2EE, .Net, PHP, etc.). Les détails d’implémentation sont intégrés très tard dans le cycle de développement de l’application. En outre, l’approche MDA ne donne aucune interdiction d’utilisation d’autres langages, ni du nombre de modèles, ni des indications sur la façon d’élaboration de ces modèles. Le rôle des modèles PIM se résume à l’établissement d’une liaison entre les modèles d’exigences et le code de l’application, quelque soit le langage utilisé pour le développent. Ces modèles PIM doivent être précis et doivent contenir suffisamment d’information afin d’assurer la génération de automatique du code [Xavier 2005].

4.3.3 Le modèle concret de code ou de conception PSM (Platform Specific Model)

Dans le vocabulaire MDA, les PSM (Platform Specific Model) sont des mo-dèles de code spécifique à une plateforme d’exécution. Ces momo-dèles de code servent à faciliter la génération de code d’une application à partir d’un modèle d’analyse et de conception (PIM). Ils contiennent des informations d’exploitation d’une plateforme d’exécution. Ils sont productifs, mais ne sont pas forcément pérennes.

L’approche MDA propose l’utilisation des profils UML pour construire des mo-dèles de code. Un profil UML est une adaptation du langage UML à un domaine particulier, comme le profil UML d’EJB (concerne le domaine EJB).

Chapitre 4. Ingénierie Dirigée par les Modèles

En outre la génération de code, les modèles de code (PSM) nous fournissent d’autres caractéristique, et ils font le lien avec les plateformes d’exécution [Xavier 2005].