Cours complet sur ATL (ATLAS Transformation Language) : pour terminer, une dernière chose à laquelle il faut prendre garde !
Dans l'article précédent :
nous avion abordé les mots clés ATL. Voyons à présent pour terminer, une dernière chose à laquelle il faut prendre garde !
Avec ATL, un élément du modèle d'entrée ne peut pas être mis en correspondance plus d'une fois.
Cette contrainte n'est pas vérifiée à la compilation et peut conduire à des résultats inattendus.
Un cas typique de correspondance multiple se produit lorsque dans le modèle d'entrée, on est en présence d'un héritage avec la super classe qui n'est pas abstraite :
La correspondance multiple apparaît ici en essayant respectivement de faire correspondre A et B dans les règles ( ruleA et ruleB).
Avec la pattern source : MM!A, la règle ruleA correspondra avec l'élément A ainsi qu'un élément B.
Comme ce dernier aura une correspondance dans ruleB, on aura le problème de la correspondance multiple.
Pour résoudre ce problème, on doit s'assurer que ruleA fait les correspondances avec seulement les éléments strictement A (et pas hérités).
Pour cela il faut filtrer dans le pattern source de la règle ruleA, le type d'élément mis en correspondance par la règle :
from
a : MM!A (
a.oclIsTypeOf(MM!A)
)
...
La fonction OCL oclIsTypeOf teste si dans le modèle d'entrée, les éléments sont des instances du métamodèle passé en paramètre.
Et voilà qui termine ce cours sur le langage ATL, nous passerons bientôt à une application dans le domaine du processus d'urbanisation du système d'information pour les projections (transformations) des cartographies.
"Je veux être fort, non pour dominer mon frère, mais pour vaincre mon plus grand ennemi - moi-même."
Chef Iakota Yellow Lark
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
- Ingénierie Dirigée par les Modèles (IDM) : un exemple vaut mieux qu'un long discours
- Ingénierie Dirigée par les Modèles (IDM) : cours complet sur ATL (ATLAS Transformation Language) : librairie ATL
- Cours complet sur ATL (ATLAS Transformation Language) : Les expressions déclaratives dans OCL / ATL
Inscrivez-vous au site
Soyez prévenu par email des prochaines mises à jour
Rejoignez les 757 autres membres