• Aucun résultat trouvé

FIGURE6.8 – Éditeur généré

abstrait, l’utilisateur a juste besoin de connaître EMF pour l’utiliser. Graphiti est égale- ment mieux documenté, mais en élevant ainsi le niveau d’abstraction de GEF, il devient aussi beaucoup moins flexible. On peut également citer Eugenia [Kolovos et al. 2009] qui propose d’annoter le méta-modèle EMF avec des éléments de la syntaxe concrète pour générer plus facilement les modèles intermédiaires de GMF (graph, tooling, mapping). Eugenia tout comme graphiti est plus simple d’utilisation parce que plus abstrait, mais aussi moins flexible. Enfin, le framework commercial Obeo Designer [Company 200x] utilise la notion de point de vue pour fournir à l’utilisateur un ensemble de représentations graphiques centrées sur un problème particulier. Obeo Designer est un outil commercial assez robuste et facile d’utilisation comparé à la solution EMF/GEF/GMF mais il est éga- lement beaucoup moins flexible que cette dernière.

La solution EMF/GEF/GMF peut être considérée comme étant une solution générique. C’est un framework qui permet à l’utilisateur de programmer tout le comportement gra- phique et toutes les notations graphiques spécifiques qu’il souhaite. Cela laisse beaucoup de liberté pour construire des éditeurs graphiques bien adaptés aux besoins des experts du domaine. Toutefois, cette généricité requiert une grande expertise en programmation et au final, la quantité de code nécessaire peut décourager les développeurs.

6.5

Autre implantation de MDA : DiaMeta

Le projet DiaMeta [Minas 2012] développé à l’université de Bundeswehr München permet de créer des éditeurs graphiques dédiés stand-alone1 à partir d’un méta-modèle. Ce projet est une extension du projet DiaGen [Minas 2012] qui permet de générer un

Syntaxe abstraite - Langage de méta-modélisation

Standard oui, Ecore est conforme aux spécifications de l’OMG Interopérable oui, les standards de l’OMG favorisent l’interopéra-

bilité

Complet non, concepts suffisamment génériques, mais pas de relation n-aire et pas de notion de sous modèle Intuitif oui, sa syntaxe graphique est similaire à celle de UML

qui est connue Syntaxe concrète

Modularité oui, la syntaxe concrète est séparée de la syntaxe abstraite

Assistant graphique oui, mais très limité Sémantique Langage de contraintes OCL

Sémantique dynamique non

Génération de l’éditeur

Automatique oui

Évolutivité non

Utilisabilité de l’éditeur généré grande

Utilisabilité de l’outil

Documentation faible

Flexibilité grande1

Complexité générique, mais très complexe d’utilisation

1Moyennant une expertise en programmation

TABLE6.1 – Résumé de EMP

éditeur à partir d’une grammaire basée sur des hypergraphes2. L’environnement de Dia- Meta consiste en deux parties : l’editor framework et le DiaMeta DESIGNER. L’editor framework est constitué d’un ensemble de classes Java qui implantent les fonctionnali- tés génériques de l’éditeur nécessaires à l’édition et l’analyse des modèles, alors que le DiaMeta DESIGNER permet de spécifier la syntaxe concrète d’un DSML. Pour créer un éditeur dédié pour un DSML, le développeur doit premièrement spécifier la syntaxe abstraite du DSML sous forme de méta-modèle ; et deuxièmement, spécifier sa syntaxe concrète ce qui se traduit par la définition des représentations graphiques des concepts du DSML, la définition des règles d’analyse syntaxique des modèles et enfin la définition des interactions entre les concepts du DSML.

2. Objets mathématiques généralisant la notion de graphe dans le sens où les arêtes ne relient plus un ou deux sommets, mais un nombre quelconque de sommets

6.5. AUTRE IMPLANTATION DE MDA : DIAMETA 58

6.5.1

Spécification de la syntaxe abstraite

DiaMeta utilise l’environnement EMF pour définir le méta-modèle et générer son code source. Il repose donc également sur les standards de l’OMG. Pour notre exemple, la syntaxe abstraite restera la même que celle présentée à la Figure6.4.

6.5.2

Spécification de la syntaxe concrète

Le développeur utilise DiaMeta DESIGNER (Figure6.9) pour spécifier les représen- tations graphiques des éléments du méta-modèle (fichier spec.dds). DiaMeta DESIGNER génère le code Java correspondant à cette spécification. Ce code associé au code généré par EMF et à celui de l’editor framework implémente un éditeur dédié pour le DSML. Le DiaMeta DESIGNER fournit une liste prédéfinie de représentations graphiques, es- sentiellement des figures de base telles que des cercles, des rectangles, des ellipses . . . Si l’utilisateur souhaite avoir une représentation graphique plus élaborée alors il doit la pro- grammer lui même. La spécification de la syntaxe concrète avec DiaMeta est d’assez bas niveau. Par exemple pour une liaison, l’utilisateur doit spécifier à la main comment cal- culer les coordonnées de l’extrémité de la liaison sur la cible. Pour notre exemple d’ADL nous avons dû spécifier où placer les SoftwareElements quand on les instancie (leurs co- ordonnées), comment les déplacer (calcul des nouvelles coordonnées), lorsqu’on clique sur deux SoftwareElements pour les relier où doit se positionner la liaison . . .

FIGURE6.9 – DiaMeta DESIGNER

6.5.3

Spécification de la sémantique

DiaMeta n’offre pas de véritable langage de contraintes permettant d’exprimer les contraintes non structurelles, mais en revanche il permet l’analyse et la simulation des modèles.

6.5.4

Génération de l’éditeur

Une fois le DSML défini, la génération de l’éditeur se fait de façon automatique. L’édi- teur généré peut être très robuste et très expressif moyennant une maîtrise de Java. L’un des principaux avantages de DiaMeta c’est que l’éditeur généré permet un mode d’édi- tion en main libre (free-hand editing), c’est-à- dire que pour créer un modèle, l’utilisateur peut agencer les concepts du langage et les positionner à l’écran comme il veut. Cela implique que les modèles incorrects sont parfaitement admis et juste signalés à l’utilisa- teur. Ce mode d’édition est pratique et permet d’améliorer la flexibilité et la créativité de l’utilisateur. L’éditeur généré pour notre exemple est représenté à la Figure6.10.

FIGURE6.10 – Éditeur généré avec DiaMeta

6.5.5

Synthèse

DiaMeta est un outil très générique certes plus abstrait que DiaGen, mais qui néces- site tout de même beaucoup d’effort programmation de la part de l’utilisateur. Cet outil offre donc une grande liberté à l’utilisateur qui peut alors implanter toutes les spécificités voulues, mais cette liberté a un coût qui est une plus grande complexité d’utilisation.