• Aucun résultat trouvé

2. CREATION ET TRANSFORMATION DE MODELE

2.1 Taxonomie des Transformations de Modèles

2.1.1 Types de Transformations

Les différents types de transformations que l’on peut rencontrer, dépendent de ce que l’on a en entrée et de ce que l’on souhaite obtenir en sortie. Dans la référence

295H

[MCV05], est tout d’abord précisé que, suivant que l’entité en entrée est un programme (code source, code machine) ou un modèle, on utilise le terme de transformation de programme ou transformation de modèle. Néanmoins, la transformation de modèle englobe la transformation de programme étant donné qu’un modèle peut avoir plusieurs niveaux d’abstraction pouvant aller d’un modèle d’analyse abstrait (en passant par un modèle plus concret de conception) pour aller vers un modèle très concret de code source. Ainsi les transformations de modèle incluent aussi les transformations entre des modèles de niveaux d’abstraction différents (design vers code ou code vers design dans le cas d’un projet de reverse engineering).

2.1.1.1 Transformation endogène et exogène

Dans le contexte de transformation de modèles, ceux-ci peuvent être exprimés par le biais de langages de modélisation (par exemple en UML ou en VHDL-AMS pour des modèles de conception, ou en assembleur pour des modèles de code source). La syntaxe et la sémantique des langages de modélisation sont exprimées par un méta modèle, concept défini dans l’introduction générale qui sera approfondi au cours du paragraphe

296H

2.3. Prenant en compte ces langages de modélisation dans lesquels les modèles source et cible de la transformation sont exprimés, une première distinction doit être précisée entre les transformations endogènes et exogènes.

Les transformations endogènes mettent en jeu des modèles exprimés dans un même langage (possédant donc le même méta modèle). La 297HFigure 22 représente ce type de transformation avec un modèle d’entrée et de sortie conformes à un même méta modèle.

Méta Modèle Source

Modèle

Source Modèle Cible

Conforme à Conforme à

Transformation

Méta Modèle Cible Il peut ainsi s’agir :

ƒ D’une optimisation : la transformation a pour but d’améliorer par exemple la qualité d’exécution (en terme de performance) du modèle, tout en préservant la sémantique du modèle,

ƒ D’une restructuration : la transformation entraine un changement de la structure interne du modèle afin d’améliorer la qualité de certaines caractéristiques comme la modularité et la réutilisation, sans modifier le comportement du modèle,

ƒ D’une simplification : la transformation va permettre de simplifier la complexité de la syntaxe du modèle.

La transformation exogène, quant à elle, met en jeu des modèles exprimés dans des langages différents. La 298HFigure 23 dépeint ce type de transformation avec les modèles d’entrée et de sortie ayant des meta modèles différents.

Figure 25 : Principe de la Transformation de Modèle Exogène

Comme pour la transformation endogène, on peut citer plusieurs exemples de transformation exogène :

ƒ La migration : la transformation d’un modèle écrit dans un certain langage en un modèle écrit dans un autre langage, tout en gardant le même niveau d’abstraction.

ƒ La synthèse : la transformation d’un modèle de haut niveau, très abstrait (spécification, modèle fonctionnel) vers un modèle de bas niveau plus concret (code généré, exécutable).

ƒ Le « reverse engineering » : il s’agit d’une transformation de synthèse inverse qui permet d’extraire des spécifications de haut niveau d’un modèle de bas niveau.

Modèle Source 1 Modèle Source 2 Modèle Cible PIM PDM PSM

2.1.1.2 Transformation horizontale et verticale :

Une deuxième distinction importante est faite entre les transformations. Elle se base cette fois-ci sur les niveaux d’abstraction des modèles sources vis-à-vis des modèles cibles. Il s’agit des transformations horizontales et verticales.

Une transformation horizontale présente des modèles sources et cibles ayant le même niveau d’abstraction. La 299HFigure 24 dépeint ce type de transformation en représentant la fusion de deux modèles de même niveau d’abstraction afin d’obtenir un troisième modèle.

Figure 26 : Principe de la Transformation de Modèle Horizontale (Fusion de modèles)

Contrairement à une transformation horizontale, une transformation verticale présente des modèles sources et cibles de niveaux d’abstraction différents. La 300HFigure 25 représente un exemple de transformation verticale que l’on a d’ores et déjà rencontrée, puisqu’il s’agit de la conception en Y à la base de la méthodologie MDA 301H[MDA] proposée par l’OMG 302H[OMG]. Elle met en jeu des modèles indépendants à une quelconque plateforme (PIM), des modèles décrivant une plateforme particulière (PDM), et qui par transformation verticale résultent d’un modèle spécifique à une plateforme (PSM).

On peut aussi constater, sur le 303HTableau 3, que de manière générale, les transformations de modèle possèdent une double dimensionnalité orthogonale entre la caractéristique Endogène/Exogène orthogonale et la caractéristique Horizontale/Verticale.

Transformation Horizontale Verticale

Endogène Restructuration

Simplification Raffinement

Exogène Migration de Langages Fusion de Modèles Reverse Engineering PIM vers PSM Génération de Code

Tableau 3 : Double Dimensionnalité des Transformations de Modèles (304H[MCV05]et

305H

[Top06])

2.1.1.3 Conclusions pour notre problématique

Dans notre objectif de créer une modélisation d’un système hétérogène à l’aide du langage de modélisation VHDL-AMS, le modèle cible est bien déterminé. La caractéristique de la transformation à appliquer va donc dépendre essentiellement du ou des modèles sources présents en entrée.

Ainsi dans le cas où l’on part essentiellement des spécifications du système à réaliser, on se place dans le cas d’une transformation verticale exogène qui s’apparente à la transformation PIM vers PSM.

Pour les autres cas où l’on part d’un modèle créé dans un langage de modélisation donné, on se place alors dans une transformation de modèle s’apparentant à une migration de langage, c'est-à-dire horizontale et exogène. Au cours de notre projet, nous avons aussi rencontré le cas de figure d’avoir à transformer un modèle écrit dans le langage MAST (cf. 306H1.5.2.2) vers le langage VHDL-AMS. Nous nous attarderons plus précisément sur cette transformation au cours du chapitre 3 (cf. 307H3.4), mais l’on peut d’ores et déjà souligner que ces deux langages sont tous deux des langages de description de matériel possédant en grandes parties des concepts de modélisation commun. On peut donc dire que bien que leur syntaxe soit différente, leur sémantique est proche. La création d’un méta modèle commun aux deux langages regroupant la plupart de leurs concepts est possible, et donc dans ce cas de figure nous nous rapprochons très fortement d’une transformation de modèle endogène. Cette idée de méta modèle commun à tous les langages de description de matériel (MAST, VHDL-AMS mais aussi Verilog-AMS) sera développée au cours du paragraphe 308H2.4 et du chapitre 3 (cf. 309H3.4).