Pour voir de quelle manière la transformation fonctionne, le mieux est d'étudier le problème qu'elle résout : supposons que vous ayez à créer une transformation et que vous vouliez utiliser la déclaration de mappage Class2InterfaceRealization dans la déclaration de mappage Package2Package afin de créer la réalisation d'interface. Cependant, la fonction cible du mappage de type sous-mappe, qui est une réalisation d'interface d'une classe UML, n'est pas visible dans la déclaration de mappage Package2Package. Comment peut-on effectuer un mappage vers cette fonction cible manquante ?
Pour fournir une réalisation d'interface en guise de cible, vous créez une sous-mappe de la fonction packagedElement à la fonction packagedElement dans la déclaration de mappage Package2Package (repère 1 sur la figure). Cette sous-mappe référence récursivement sa déclaration de mappage parente, Package2Package, assurant ainsi le support des packages imbriqués et de leur contenu. A présent, vous pouvez donc définir d'autres sous-mappes entre la fonction packagedElement et la fonction packagedElement. Ces sous-mappes supplémentaires peuvent référencer d'autres déclarations de mappage : Class2Class (repère 2) et Class2Interface (repère 3).
Lorsque vous créez la déclaration de mappage Class2Class, vous pouvez utiliser une sous-mappe (repère 4) dont l'entrée est l'élément Class tout entier. Pour la sortie, sélectionnez interfaceRealization. Le résultat de cette action est la mise à disposition de la déclaration de mappage Class2InterfaceRealization, avec laquelle vous créez deux sous-mappes supplémentaires (repères 5 et 6) qui utilisent également comme entrée l'élément Class tout entier et comme sortie la fonction supplier pour l'une et la fonction client pour l'autre. Lorsque vous générez le code de transformation, les sous-mappes définies ici ne créent pas d'objets de sortie, mais des références aux objets de sortie créés par les transformations qui sont générées à partir des autres déclarations de mappage.
Lorsque vous générez le code de transformation, les fonctions de sortie supplier et client doivent toutes les deux référencer les objets UML qui ont été générés à partir des objets UML d'entrée. Pour spécifier les objets de sortie à référencer, écrivez les définitions des sous-mappes de sorte qu'elles identifient la déclaration de mappage, Class2Class ou Class2Interface, dont la transformation résultante est responsable de la génération de l'objet de sortie correspondant, Class ou Interface, à partir de la même entrée.
Pour plus de détails, étudiez l'exemple de configuration de transformation illustré ci-après. Dans cette figure, les flèches pointant d'une sous-mappe vers l'en-tête d'une déclaration de mappage indiquent que la sous-mappe en question référence la déclaration de mappage. Par exemple, la flèche repérée "1" référence la déclaration de mappage Package2Package.
