Para ver cómo funciona la transformación, considere el problema que resuelve: suponga que está creando una transformación y que desea utilizar la declaración de correlación Class2InterfaceRealization en la declaración de correlación Package2Package para crear la realización de interfaz. Sin embargo, la característica destino de la correlación de subcorrelación, una realización de interfaz de una clase UML, no es visible en la declaración de correlación Package2Package. ¿Cómo puede correlacionar con la característica destino faltante?
Para proporcionar realización de interfaz como destino, debe crear una subcorrelación de la característica packageElement a la característica packageElement en la declaración de correlación Package2Package (elemento 1 en la figura). Esta subcorrelación hace referencia a la declaración de correlación Package2Package padre, recursivamente y esta forma proporciona soporte para paquetes anidados y su contenido. Como resultado, ahora puede definir subcorrelaciones adicionales de la característica packageElement a la característica packageElement. Las subcorrelaciones pueden hacer referencia a otras declaraciones de correlación: Class2Class (elemento 2) y Class2Interface (elemento 3).
Cuando crea la declaración de correlación Class2Class puede utilizar una subcorrelación (elemento 4) que tiene como entrada todo el elemento Class. Para la salida, seleccione interfaceRealization. El resultado de esto consiste en hacer disponible la declaración de correlación Class2Interface con la que puede crear dos subcorrelaciones adicionales (elementos 5 y 6) que también tienen como entrada todo el elemento Class y como salida la característica de proveedor y la característica de cliente. Al generar el código de transformación, las subcorrelaciones definidas no crean objetos de salida pero crean referencias a objetos de salida creados por transformaciones generadas a partir de otras declaraciones de correlación.
Cuando genera el código de transformación, las características de salida de proveedor y de cliente deben hacer referencia a los objetos UML generados a partir de los objetos UML de entrada. Para especificar los objetos de salida a los que hacer referencia, escriba las definiciones de subcorrelación de modo que identifiquen la declaración de correlación, Class2Class o Class2Interface, cuya transformación generada es responsable de generar el objeto de salida específico, Clase o Interfaz, de la misma entrada.
Para obtener más detalles, examine la configuración de la transformación de ejemplo. En la figura, las flechas que señalan desde una subcorrelación a la parte superior de una declaración de correlación indican que la subcorrelación hace referencia a las declaración de correlación. Por ejemplo, la flecha llamada "1" hace referencia a la declaración de correlación Package2Package.
