Aller au contenu. | Aller à la navigation

Outils personnels

Navigation

Vous êtes ici : Accueil / Articles / TranS (Transformations Strategy) 1.0

TranS (Transformations Strategy) 1.0

Par Amen Souissi publié 25/10/2011 22:00, Dernière modification 17/01/2012 17:08
TranS est un outil développer par l'équipe Ecreall dans le cadre de l'environnement OMEGSI. Cet outil nous permet d’exécuter nos stratégies de transformations, permettant ainsi de générer du code à partir d'un ou de plusieurs modèles d'entrées.

1. Description générale de TranS :

TranS

Sur un plan technique, un développeur à besoin d'un cahier des charges complet décrivant le système à implémenter et un ensemble de connaissances sur un ensemble de langages lui permettant d'implémenter le système. Cet ensemble de connaissances se matérialise par la maîtrise du langage (grammaire, syntaxe...) et l'ensemble de librairies lui permettant de ne pas réinventer la roue. Le développeur a donc comme rôle de transformer le cahier des charges écrit en langage humain en un langage compréhensible par la machine . Cela en se basant sur les connaissances acquises par le développeur (grammaire, syntaxe , librairies...). Pour passer du domaine de l'humain au domaine de la machine le développeur et amener à appliquer une stratégie de développement et donc de transformation allant de l'analyse du cahier des charges au code final en passant par le choix des librairies les plus adaptées. Cette stratégie est souvent complexe et décrit le cheminement d'idées du développeur et les phases de développements. Il existe donc des choix techniques à faire au niveau de la stratégie. Ces transformations et ces choix constituent la stratégie des transformations mener par le développeur.

TranS à comme bute d'automatiser cette stratégie de transformations. Il invite l'utilisateur à établir la stratégie avant les transformations cela donne une idée globale sur le déroulement du développement et augmente le tôt de réutilisation des transformations. Le bute n'est pas de prendre la place du développeur, mais de l'amener à métaprogrammer au lieu de programmer. La métaprogrammation et le fait de développer une stratégie de transformations permettant ainsi de générer des programmes. La métaprogrammation englobe, donc, la métamodélisation. Nous pouvons parler de la métamétaprogrammation qui consiste à développer une stratégie permettant de générer une stratégie qui permet de générer des programmes, etc. Dans TranS le moteur de stratégies est une transformation écrite en QVT et, donc, peut être référencé par une stratégie. Cela nous permet d’exécuter des stratégies à la volée et permet à l'utilisateur de définir le comportement de TranS en définissant sa propre stratégie d’exécution. La métamétaprogrammation est donc possible avec TranS.

Sur le diagramme suivant, nous avons la stratégie qui nous pemet d'exécuter des stratégies. Cette stratégie fait appel au moteur de TranS (ici la transformation StrategyEngine), le modèle source doit être spécifié par l'utilisateur comme indiqué sur ce diagramme.

 

ExecuteStrategy

 

 

Une transformation dans TranS peut avoir des paramètres d'entrées de sorties ou d'entrées sorties ils peuvent avoir des types primitifs ou complexes comme File ou Folder ou de type Metamodel. Ces paramètres peuvent être spécifiés au niveau du modèle, par exemple les modèles des librairies, ou à l’exécution ce qui rend la stratégie interactive par exemple les modèles d'entrées. Une stratégie est considérée comme une transformation ce qui nous permet d'imbriquer les stratégies. Une sous stratégie peut être donc référencée ou définie au niveau du modèle.

TranS est un ensemble de plugins eclipse permettant à l'utilisateur de définir sa stratégie de transformation et de la tester sur l'espace de travail comme au niveau des plugins à travers le mécanisme des points d’extensions d'eclipse.

Vous pouvez télécharger TranS ici. TranS nécessite Eclipse, EMF, GMF , Acceleo et QVT pour fonctionner. Ces logiciels sont fournis par la communauté sur le site officiel d'Eclipse.

 

2. Étendre TranS :

Dans TranS une transformation peut être de n'importe quel type (QVT, Acceleo, Java …). Actuellement TranS supporte les transformations de type QVT, Acceleo ou Java mais l'utilisateur peut facilement étendre TranS pour qu'il puisse supporter un autre type de transformation comme ATL par exemple. Pour cela , l'utilisateur n'a qu'ajouté un exécuteur de ce type de transformation en le connectant à TranS à travers le mécanisme de point d’extension d'eclipse.

Enfin vous pouvez écrire votre propre moteur de stratégie puisque le moteur de TranS est une simple transformation QVT qui prend en paramètre un modèle de stratégie .