Ingénierie Dirigée par les Modèles (IDM) : documentation ATL (ATLAS Transformation Language), vous saurez tout ou presque sur les modules
Un module ATL correspond à une transformation de modèles, voir les articles :
et
ATL permet de produire un ensemble de modèles cibles à partir d'un ensemble de modèles sources.
Le modèles sources et cibles doivent être des instances de leurs métamodèles respectifs.
Un module ATL est composé des sections :
- header
- import
- helpers
- rules
1) La section "Header"
Elle définie le nom de la transformation et les noms des variables correspondant aux modèles sources et cibles.
De manière similaire à Java, le nom du fichier ATL ( .atl ) doit avoir exactement le même nom que le module.
Le mot clé create précise le modèle source et from ( en mode normall ) et refining ( dans le cas où on raffine la transformation ) pour le modèle source.
La déclaration multiple de modèles, séparés par des virgules, en entrée/sortie est possible.
2) La section Import
Elle est facultative et permet de déclarer des librairies ATL.
3) La section Helpers
C'est vraiment l'équivalent des helpers Java, ils offrent la possibilité de factoriser du code.
4) La section Rules
3 types de règles :
"Matched rules" : constituent la partie déclarative de la transformation. On doit spécifier :
- pour quels types d'éléments sources, des éléments cibles doivent être générés.
- la manière dont les éléments cibles sont initialisés
Une "matched rule" est identifiée par son nom. Elle correspond à un type d'élément du modèle source et génère un ou plusieurs éléments du modèle cible.
from
a : MMAuthor!Author
to
p : MMPerson!Person (
name <- a.name,
surname <- a.surname
)
}
Cette règle "Author", a pour but de transformer les éléments du modèle source Author ( à partir du métamodèle source MMAuthor ) en éléments du modèle cible Person ( MMPerson ) . Elle ne contient pas de filtres ce qui signifie que toutes les classes de MMAuthor correspondent au pattern.
La règle concernant le pattern cible contient un simple pattern qui instancie la classe Person de MMPerson du métamodèle cible pour chaque éléments source correspondant au pattern source.
Lazy rules ne sont appliquées seulement lorsqu'elles sont appelées par une autre règle.
Called rules permet au développeur de programmer de manière impérative ( à la manière d'un langage classique d'un langage de programmation Java, C++, C#, ... ).
Gardons en peu pour les prochains articles.
"N'oublie pas que chaque nuage, si noir soit-il, a toujours une face ensoleillée, tournée vers le ciel."
Friedrich Wilhelm Weber
Voir aussi :
http://urbanisation-si.wix.com/blog
http://urbanisme-si.wix.com/blog
http://urbanisation-si.wix.com/urbanisation-si
http://urbanisation-si.over-blog.com/
http://rhonamaxwel.over-blog.com/
http://urbanisation-des-si.blogspot.fr/
A découvrir aussi
- Les recherches en urbanisation du Système d'Information : le Model-Driven Engineering (MDE) encore un acronyme à la mode ?
- Ingénierie Dirigée par les Modèles : les métamodèles mindmap, l'embarras du choix !
- Didacticiel ( tutoriel ) Eclipse Sirius ( Obeo Designer Community ) : le digne successeur de GMF le framework le plus complexe du monde !
Inscrivez-vous au site
Soyez prévenu par email des prochaines mises à jour
Rejoignez les 754 autres membres