P E R S O N N A L I S A T I O N D E L A P R E S E N T A T I O N
2
onctionnalités attendues de MTL
MTL doit pouvoir se connecter à un dépositaire de modèles de niveau M1, pour naviguer dans un
modèle présent dans le dépositaire et éventuellement le modifier.
MTL doit pouvoir être utilisé avec des dépositaires différents, et dialogue avec le dépositaire via une
API générique. Pour raccorder un nouveau dépositaire, il suffit d’écrire l’implémentation de l’API
générique qui lui est propre.
Le compilateur MTL doit pouvoir s’écrire en MTL de façon à rester indépendant du langage cible qui le
réalise concrètement.
Un interprète OCL devrait pouvoir s’écrire facilement en MTL, car MTL dispose des mêmes
possibilités de navigation et de test qu’OCL. MTL étend OCL en permettant des créations et
modifications.
MTL doit permettre d’appeler des « opérations externes » telles que l’appel d’un interprète OCL sur une
expression OCL isolée, un autre outil associé aux expressions présentes dans le métamodèle, ou encore
des fonctionnalités du langage cible.
MTL doit permettre de réaliser des modules ou librairies qui peuvent être réutilisés dans le cadre de
plusieurs transformations.
Fonctionnalités en termes de modèles :
MTL peut vérifier la cohérence d’un modèle vis-à-vis de son métamodèle : récupération de toutes les
contraintes OCL issues du métamodèle et attachées aux éléments du modèle, puis vérification de leur
validité par appel de l’interprète OCL sur de chacune d’elles.
MTL peut transformer un modèle en un autre, même lorsque ceux-ci sont basés sur des métamodèles
différents. Exemples : transformation d’un arbre quelconque en arbre binaire, transformation d’un arbre
ANTLR en arbre N-aire, transformation d’un modèle en UML1.4 en modèle d’UML2.
: MTL permet l’application d’une même transformation à tous les éléments de modèle satisfaisant une
propriété. Par exemple, l’application de contrat entre une interface requise et une fournie. MTL
recherche dans le modèle toutes les interfaces mises en correspondance et y ajoute systématiquement le
type de contrat ainsi que son implémentation. On peut également tisser des aspects sur le modèle.
MTL permet de dériver, à partir d’un groupe d’éléments du modèle représentant un produit générique,
une ligne de produits par introduction de caractéristiques spécifiques à chaque produit.
MTL doit-il être un langage orienté objet autorisant l’héritage multiple ?
Avantages : Les objets MTL manipulés représentent des éléments de modèle
(objets pouvant avoir un héritage multiple).
On peut utiliser la modélisation UML pour décrire des transformations.