• Aucun résultat trouvé

Différents types de transformation de modèle

Chapitre III : Analyse préalable en vue de la proposition d’une méthode de génération

III.2. Approche pour la génération automatique de l’IHM

III.2.2. Notion théorique sur la transformation de modèle

III.2.2.3. Différents types de transformation de modèle

89

Dans ce cas, les modèles sources et cibles sont conformes aux métamodèles différents. Ainsi, les chercheurs doivent trouver des moyens pour effectuer la transformation des modèles quels que soient les modes de transformation. Il suffit de créer et d’appliquer les règles de passage entre deux différents modèles. Le passage d’un niveau du modèle à un autre s’effectue de manière automatique si ces règles de transformation sont bien définies. Pour pouvoir appliquer ces règles, le modèle source se transforme en modèle cible. On va détailler dans la section suivante les différents types de transformation.

III.2.2.3. Différents types de transformation de modèle

S’appuyant sur l’approche MDA, un mécanisme de transformation de modèle comprend différents modes et approches de transformation. En partant des métamodèles sources et cibles, on distingue deux types de transformation : endogène et exogène.

a. Transformation endogène

Une transformation est dite endogène si les modèles utilisés sont issus du même métamodèle (Diaw et al., 2010). Elle consiste à décrire la correspondance entre le modèle source et le modèle cible en tenant compte de :

➢ L’optimisation : amélioration des performances tout en maintenant la sémantique ; ➢ La restructuration (refactoring) : transformation de la structure pour améliorer certains

aspects de la qualité du logiciel ;

➢ La simplification : transformation afin de réduire la complexité syntaxique.

La transformation endogène est exécutée dans le même espace technologique. Les modèles sources et les modèles cibles sont conformes au même métamodèle. On peut prendre comme exemple la transformation d'un modèle UML en un autre modèle UML.

b. Transformation exogène

Lorsque les modèles sources et cibles sont dans les métamodèles différents, la transformation est dite exogène ou translation. La transformation exogène consiste à mettre en correspondance le modèle source et le modèle cible malgré la différence entre ces deux modèles. Elle est aussi réalisée entre deux espaces technologiques différents. Les modèles sources et cibles sont conformes à des métamodèles différents mais ils peuvent être dans un même niveau d’abstraction. D’après (Diaw et al., 2010), la transformation exogène comprend alors les trois particularités suivantes :

---

90

➢ La synthèse : transformation d’un certain niveau d’abstraction vers un niveau d’abstraction moins élevé ;

➢ La rétro ingénierie : inverse de la synthèse ;

➢ La migration : transformation d’un programme écrit dans un langage vers un autre langage du même niveau d’abstraction. Exemple : transformation d'un modèle UML en programme Java, transformation d'un fichier XML en schéma de base de données. Une transformation de modèle se réalise en général en trois étapes suivantes. La première étape consiste en la définition des règles de transformation. A l’aide des règles de transformation, le processus de transformation prend en entrée un modèle source conforme au métamodèle source et produit en sortie un modèle cible conforme au métamodèle cible. Cette première étape met en correspondance les éléments du modèle source et les éléments du modèle cible. Le deuxième étape décrit l’expression des règles de transformation. De ce fait, il faut décrire un langage de transformation capable de spécifier, de filtrer et de sélectionner les éléments de chacun des modèles sources et des modèles cibles. Puis, on doit écrire ce langage dans un format interprétable par un moteur d’exécution des règles de transformation. La troisième étape consiste en l’exécution des règles de transformation. Un moteur d’exécution est nécessaire pour produire en sortie le modèle cible. En général, il existe plusieurs types de transformation de modèle, mais d’après (Diaw et al., 2010) les plus fréquemment utilisés sont cités ci-après:

➢ Transformations totales : la totalité du modèle est transformée en un autre modèle. Il s’agit de projection, c’est-à-dire qu’on projette un modèle sur un autre modèle ;

➢ Transformations partielles : elles ne concernent qu’un sous ensemble de modifications. On les appelle aussi perturbations ; c’est-à-dire qu'une partie du modèle modifié ou perturbé sera transformée en un nouveau modèle ;

➢ Transformation simple (1 vers 1) : elle associe à tout élément du modèle source un et un seul élément du modèle cible ;

➢ Transformation multiple (M vers N) : elle consiste en la décomposition (1 vers N) et la fusion (M vers 1). La transformation multiple prend en entrée un ensemble d’éléments du modèle source et produit un ensemble d’éléments du modèle cible. Dans le cas de la décomposition, un modèle source sera transformé en plusieurs modèles cibles. Mais la fusion consiste à obtenir un et un seul modèle cible à partir de plusieurs modèles sources.

---

91

La transformation de décomposition de modèles et la transformation de fusion de modèles sont des cas particuliers de la transformation multiple ;

➢ Transformation de mise à jour : elle consiste à modifier un modèle par le biais d’un ajout, d’une modification ou d’une suppression d’une partie du modèle source. Elle est aussi appelée une transformation sur place.

Ces types de transformation peuvent être réalisés dans un même niveau d’abstraction ou dans un niveau d’abstraction différent. Ils s’appellent transformation horizontale s’ils seront exécutés dans un même niveau d’abstraction mais ils s’appellent transformation verticale dans le cas contraire (Diaw et al., 2010).

c. Transformation horizontale

Lorsque les modèles à transformer sont dans un même niveau d’abstraction, on parle de la transformation horizontale (Diaw et al., 2010). Il s’agit d’une transformation automatique directe, d’une transformation automatique, d’une intervention humaine ou d’un raffinement du modèle pour atteindre l’objectif décrit au modèle cible. Dans chaque niveau d’abstraction, on peut effectuer d’une transformation horizontale.

Premièrement, la transformation pourra être exécutée au niveau CIM, c’est-à-dire qu’on effectue le raffinement du modèle conceptuel CIM en un autre modèle cible de même niveau à ce modèle source. Deuxièmement, il existe la transformation de modèle PIM en un autre modèle PIM. Dans ce cas, il s’agit d’un raffinement qui consiste à ajouter des informations (non liées à une plate-forme) sous forme d'annotations aux modèles sources. Cette transformation constitue un enrichissement et une spécialisation du modèle, en y apportant des informations indépendantes des spécificités d'une technologie.

La description d'un modèle de répartition, de persistance des données ou de composants peut être vue comme un raffinement. Troisièmement, on peut aussi effectuer une transformation de modèle PSM en un autre modèle PSM.

Cette transformation nécessite l'utilisation de formalismes intermédiaires pour générer un code. C'est la mise en œuvre concrète d'un modèle générique sur une plateforme d'exécution. Elle consiste en un ensemble de phases qui mènent à un logiciel exécutable, telles que la génération de code source, la compilation, le déploiement, l'instanciation et l'initialisation des composants logiciels.

---

92

d. Transformation verticale

La transformation est dite verticale lorsqu’elle s’effectue au niveau d’abstraction différent (Diaw et al., 2010). La transformation débute au modèle du niveau CIM et se termine au modèle du niveau PSM. La transformation ne cesse jusqu’à l’obtention du code source de l’application. Le principe de la transformation prend en entrée le modèle du monde réel en le transformant en modèle interprétable par la machine. Primo, il existe dans cette démarche la transformation de CIM vers PIM qui consiste à créer et à modéliser des systèmes et des modèles des exigences utilisateurs. Secondo, il est possible de faire une transformation de PIM vers PSM qui consiste à ajouter au PIM des informations propres à une plateforme technique. Les règles de transformation sont généralisées et capitalisées pour une réutilisation future. Le concept se base sur la traduction du modèle générique, vers une plateforme d'exécution. Terzio, il est ainsi possible de raffiner le modèle PSM en modèle spécifique à des plateformes. Ce dernier modèle pourra être le code source de l’application finale.

Dans différents niveaux d’abstraction, si la transformation de modèle part du niveau d’abstraction le plus bas vers le niveau le plus haut, on parle de la transformation verticale ascendante. Contrairement à la transformation verticale descendante, elle débute du modèle du niveau PSM ou bien au code source de l’application finale et se termine au modèle d’exigences du niveau CIM. La transformation estime le modèle décrivant les attentes des utilisateurs en s’abstrayant à partir du code source d’une application. Cette transformation permet l'élaboration du modèle générique à partir de l'implémentation existante d'un logiciel. Alors elle est indispensable pour permettre l'intégration des applications existantes. D’après avoir détaillé les différents types de transformation des modèles, on va entamer la description des approches de transformation de modèle et les standards normalisés.