< Anterior | Siguiente >

Lección 4: Crear y definir con más precisión una declaración de correlación clase a interfaz

Con esta lección aprenderá a crear una declaración de correlación clase a interfaz en el modelo de correlación. Esta declaración de correlación contiene reglas de correlación que crean una interfaz cuyo nombre se deriva del nombre de la clase existente en el modelo origen, y que solo copia los métodos públicos de la clase en el modelo origen.
Por qué y cuándo se efectúa esta tarea

Para crear una declaración de correlación clase a interfaz en el modelo de correlación:

  1. Si el archivo Generalize_Classes.mapping no está abierto en el editor de correlaciones, vaya a la vista Explorador de paquetes y pulse dos veces en el archivo.
  2. En el área del editor de correlaciones de transformación, en la sección Raíz de correlación, pulse Generalize_Classes con el botón derecho del ratón; después, pulse Crear correlación.
  3. En la ventana Correlación nueva, en el campo Nombre de correlación, teclee Class2Interface y pulse Aceptar. La correlación se visualiza en la vista Esquema y se abre en el área del editor bajo la sección Raíz de correlación.
    Nota: Para ver los detalles de una declaración de correlación que no esté abierta en el área del editor, vaya a la vista Esquema y expanda el nombre de la declaración de correlación. Para abrir una declaración de correlación distinta, vaya a la vista Esquema y pulse el nombre de la declaración de correlación.

Añadir objetos de entrada y de salida a la declaración de correlación clase a interfaz

Por qué y cuándo se efectúa esta tarea

Después de haber creado la declaración de correlación clase a interfaz, especificará una clase UML como objeto origen, y una interfaz UML como objeto destino.

Para añadir un objeto de entrada y un objeto de salida a la declaración de correlación clase a interfaz:

  1. Pulse el icono de Añadir un objeto de entrada, que es el situado más a la izquierda en la barra de herramientas de la correlación que se propone editar.
  2. En la ventana Añadir entrada, en el panel Elemento, expanda uml, pulse Clase y, después, Aceptar.
  3. Pulse el icono de Añadir un objeto de salida, que es el segundo icono de la izquierda en la barra de herramientas de la correlación que se propone editar.
  4. En la ventana Añadir salida, en el panel Elemento, expanda uml, pulse Interfaz y, después, Aceptar.
  5. Pulse Archivo > Guardar.
Resultados
Ahora puede definir reglas de correlación entre los atributos del objeto de entrada de la clase y del objeto de salida de la interfaz.

Definir reglas de correlación entre los atributos de los objetos de entrada y de salida

Por qué y cuándo se efectúa esta tarea

Después de haber añadido un objeto de entrada y un objeto de salida a la declaración de correlación clase a interfaz, ya puede definir las reglas de correlación entre los atributos de los objetos de entrada y de salida.

Para esta lección, creará una regla de correlación personalizada que cree una interfaz llamada IClassName. También creará una regla de correlación de subcorrelación que invoque la subcorrelación de operación a operación que creó en Lección 3: Crear y definir con más precisión una declaración de correlación clase a clase, y añadirá un filtro de entrada a la regla de correlación de subcorrelación para especificar que solo las operaciones públicas se transformarán en la interfaz destino.

Para definir las reglas de correlación entre los atributos de los objetos de entrada y de salida:

  1. Cree una regla de correlación personalizada entre el atributo name del objeto de entrada y del objeto de salida:
    1. En el área del editor, en el objeto de entrada de la clase, pulse el atributo name.
    2. Arrastre la manecilla del atributo name hasta el atributo name del objeto de salida de la interfaz. Se crea una regla de correlación de movimiento.
    3. En el elemento Movimiento que conecta los atributos name, pulse la flecha abajo y elija Personalizada.
    4. Pulse el elemento Personalizada con el botón derecho del ratón y luego seleccione Mostrar en propiedades.
    5. En la vista Propiedades, en la pestaña Detalles, pulse Incorporado, y en el área de texto situada bajo la signatura del método, teclee el código: Interface_tgt.setName("I"+Class_src.getName());
      Nota: Para invocar la función de asistencia de contenido, a medida que teclee el código, pulse las teclas Control+Espaciadora.
    6. Pulse Aplicar.
  2. Cree una regla de correlación de subcorrelación entre el atributo ownedOperation del objeto de entrada y del objeto de salida.
    1. En el área del editor, en el objeto de entrada de la clase, pulse el atributo ownedOperation.
    2. Arrastre la manecilla del atributo ownedOperation hasta el atributo ownedOperation del objeto de salida de la interfaz. Dado que el atributo ownedOperation es una colección, se crea por defecto una regla de correlación de subcorrelación.
    3. Si la vista Propiedades no está abierta, pulse el nuevo elemento Subcorrelación con el botón derecho del ratón y elija Mostrar en propiedades.
    4. Si todavía no está seleccionado, en la vista Propiedades, en la pestaña Detalles, de la lista Correlación, seleccione Operation2Operation.
  3. A la regla de correlación de subcorrelación que creó en el paso 2, añada un filtro de entrada que solo transforme las operaciones públicas en la interfaz destino:
    1. En la vista Propiedades, en la pestaña Filtro de entrada, pulse Filtrar elementos de entrada y seleccione Incorporado.
    2. En el área de texto situada bajo la opción Código, bajo la signatura del método, teclee el código: if (ownedOperation_src.getVisibility().equals(VisibilityKind.PUBLIC_LITERAL)) { return true; } return false;
      Nota: El código que especifique para un filtro de entrada o de salida debe devolver un valor booleano. Solo puede especificar el cuerpo del método; la infraestructura de autoría de transformaciones es la que define la signatura del método. Para ver una lista de los nombres de variables válidos, vaya al área de texto, bajo el botón Incorporar, y pulse las teclas Control+Espaciadora.
    3. Pulse Aplicar.
  4. Pulse Archivo > Guardar.
Resultados
En la próxima lección, creará varias declaraciones de correlación en el modelo Generalize_Classes.mapping; Estas declaraciones de correlación definen cómo se trasforman los parámetros y los tipos primitivos cuando se ejecuta la transformación generada.
< Anterior | Siguiente >

Comentarios