WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Une approche IDM du transformation du modèle ecore vers event-b.

( Télécharger le fichier original )
par Bouazizi Hana
FSM - Mastère recherche 2014
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

1.4 Langage de transformation de modèles ATL

Plusieurs langages de transformation ont été proposés pour réaliser des transformations de modèle selon l'approche par méta-modélisation, parmi lesquels le standard MOF2.0 QVT et le langage ATL (ATLAS Transformation Langage) [7].

Dans ce mémoire, notre choix s'est porté sur ce dernier langage. En effet, ATL est largement utilisé maintenant par la communauté et il est aussi considéré comme un standard de transformation dans Eclipse.

ATL [8], acronyme de «ATLAS Transformation Langage» est un langage de transfor-

page 15

1.4 Langage de transformation de modèles ATL

mation de modèles dans le domaine de l'IDM (Ingénierie Dirigée par les Modèles) ou MDE (Model-Driven Engineering). Il fournit aux développeurs un moyen de spécifier la manière de produire un certain nombre de modèles cibles à partir de modèles sources.

1.4.1 Vue d'ensemble sur la transformation ATL

Une transformation de modèles définit la façon de générer un modèle Mb, conforme au méta-modèle MMb, à partir du modèle Ma conforme au méta-modèle MMa. Un élément majeur dans l'ingénierie des modèles est de considérer, dans la mesure du possible, tous les objets traités comme des modèles. La transformation de modèles doit être elle-même définie comme un modèle (MMa2MMb.atl). Ce modèle de transformation doit être conforme au méta-modèle qui définit la sémantique de transformation de modèles (ATL). Tous les méta-modèles doivent être conformes au méta-méta-modèle considéré (ECore). La Figure 1.6 donne une vue d'ensemble sur la transformation ATL [5].

FIGURE 1.6 - Vue d'ensemble sur la transformation ATL

Le langage ATL offre différents types d'unités, qui sont définis dans des fichiers d'extension «.atl» distincts. Ces unités sont le module permettant de définir les opérations des transformations des modèles, des requêtes ATL et des bibliothèques qui peuvent être importées par les différents types d'unités ATL, y compris les autres bibliothèques. Un aperçu de ces différents types d'unités est fourni dans la suite.

page 16

1.4 Langage de transformation de modèles ATL

1.4.2 Présentation d'ATL

Un programme ATL qui définit la transformation d'un modèle en un autre modèle est appelé module et est stocké dans un fichier (.atl). Le module est composé d'une section entête, d'une section d'importation de bibliothèques, d'une section de déclaration des fonctions auxiliaires (helpers) et d'une section de spécification des règles de transformation.

Les règles de transformation en ATL peuvent être spécifiées dans un style déclaratif (mat-ched/lazy rules) ou impératif (called rules).

Dans ce qui suit, nous décrivons en détails les différentes sections ATL utilisées dans le cadre de notre programme de transformation.

~ La section d'en-tête (header)

La section d'en-tête définit le nom du module de transformation ainsi que le nom des variables correspondantes aux modèles sources et cibles. Elle encode également le mode d'exécution. La syntaxe de la section d'en-tête est définie comme suit :

module MMa2MMb;

create Mb : MMb [from|refining] Ma : MMa ;

~ La section d'importation

La section d'en-tête définit le nom du module de transformation ainsi que le nom des variables correspondantes aux modèles sources et cibles. Elle encode également le mode d'exécution. La syntaxe de la section d'en-tête est définie comme suit :

uses nom bibliothèque;

~ Les helpers

Les fonctions ATL sont appelées des helpers d'après le standard OCL (Object Constraint Language (OCL)) sur le quel ATL se base. OCL définit deux sortes de helpers : opération et attribut.

1. La syntaxe d'un helper opération est définie comme suit :

helper [context type_du_contexte]? def : nom_du_helper ( nom_paramètre1 : type_paramètre1 , nom_paramètre2 : type_paramètre2) :

type_de_retour = expression;

page 17

1.4 Langage de transformation de modèles ATL

2. La syntaxe d'un helper attribut est définie comme suit :

helper [context type_du_contexte]? def : nom_du_helper : type_de_retour = expression;

Il existe une différence dans la sémantique d'exécution du helper opération et du helper attribut. Le premier est calculé à chaque appel tandis que le deuxième est calculé une seule fois selon l'ordre de sa déclaration dans le fichier ATL.

~ Les règles

Le langage ATL est un langage hybride, il contient aussi bien les constructions déclaratives que les constructions impératives. Le style recommandé est le style déclaratif, cependant, pour faciliter les constructions plus ou moins compliqués il est possible d'avoir recourt au style impératif. Le langage comprend trois types de règles déclaratives et un type de règles impératives. La Figure 1.7 présente la syntaxe abstraite des règles de transformation ATL.

FIGURE 1.7 - Les règles de transformation ATL.

Les règles standards (Matchedrules) :

Ils constituent le noyau de la transformation déclarative. Elles sont appelées une seule fois pour chaque tuple correspondant à leurs motifs d'entrée trouvée dans les modèles source. Elles permettent de spécifier pour quels éléments sources les éléments cibles sont générés ainsi que la façon dont ces éléments cibles sont initialisés.

Les règles paresseuses (lazyrule) :

Elles ressemblent aux règles standards, à la différence qu'elles ne sont déclenchées que par d'autres règles. Elles sont appliquées sur chaque tuple autant de fois qu'elles sont référencées.

page 18

1.5 La plateforme de modélisation sous Eclipse

Les règles paresseuses uniques (unique lazyrule) :

Identiques aux règles paresseuses non uniques, à la différence qu'elles sont appliquées une

unique fois pour chaque tuple.

Les règles appelées (calledrules) :

Elles fournissent le style de programmation impératif. Elles peuvent être vues comme des

helper particuliers. Elles doivent être déclenchées.

~ Les bibliothèques ATL

Une bibliothèque ATL permet de définir un ensemble de helpers qui peuvent être appelés à

partir des différentes unités ATL. Ce fichier est défini par l'en-tête :

library nom_bib;

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"La première panacée d'une nation mal gouvernée est l'inflation monétaire, la seconde, c'est la guerre. Tous deux apportent une prospérité temporaire, tous deux apportent une ruine permanente. Mais tous deux sont le refuge des opportunistes politiques et économiques"   Hemingway