Cómo usar IBM Rational Rose Model Importer: Parte 2. Cómo migrar subunidades de un modelo UML de Rose a Rational Software Architect

En este artículo, aprenderá a usar la herramienta IBM Rational Rose Model Importer para migrar subunidades de un modelo UML desde la solución IBM Rational Rose hasta el entorno IBM Rational Software Architect. Esta parte, la segunda de la serie, contiene una explicación paso a paso para migrar subunidades de un modelo de Rose y beneficiarse de las capacidades de modelado mejoradas del entorno de Software Architect.

Introducción

En la primera parte de la serie se analizó brevemente el tema de la subunidades y los fragmentos. Los fragmentos de la herramienta IBM® Rational® Software Architect son equivalentes a las subunidades de la solución IBM® Rational® Rose®; el principal objetivo de las subunidades o fragmentos consiste en facilitar el desarrollo paralelo e independiente de diferentes partes de un modelo dentro de un equipo de trabajo. Esto permite dividir un modelo grande y complejo en unidades más pequeñas para que los desarrolladores las puedan manipular de manera independiente. Cada una de las subunidades o fragmentos pueden existir por separado con control de versiones, lo cual permite que un equipo de trabajo desarrolle un modelo en paralelo.

El entorno de Software Architect permite trabajar con múltiples modelos al mismo tiempo; por el contrario, Rational Rose permite trabajar con un solo modelo a la vez. En el entorno de Rational Software Architect, es posible dividir un modelo grande en múltiples modelos más pequeños similares a los fragmentos. La ventaja de los submodelos es que pueden existir independientemente del modelo principal, a diferencia de los fragmentos, que solo pueden existir dentro de él. Además, estos submodelos independientes pueden ser compartidos por múltiples modelos.

La herramienta IBM® Rational® Rose® tiene una opción para convertir de manera automática las subunidades en fragmentos o modelos independientes después de su importación, lo cual permite trabajar con una configuración similar a la del entorno de Rational® Rose. La herramienta también soporta el uso compartido de las subunidades con los modelos existentes en la solución Software Architect. En este artículo se analizarán las diversas opciones disponibles para la conversión de subunidades durante la importación de un modelo de Rose al entorno de Software Architect.

Requisitos previos

Es necesario instalar el siguiente software de Rational y estar familiarizado con el uso de ambos productos:

  • Rational Software Architect Standard Edition Versión 7.5.2 o posterior
  • La solución Rational Rose, con modelos que contengan Petal Versión 47, 48 ó 50, que son las únicas versiones que se pueden importar en el entorno de Software Architect. Si tiene modelos que usan Petal Versión 46 o anterior, primero actualícelos a Petal Versión 47 dentro de la herramienta Rational Rose. Estos modelos deben estar libres de errores antes de su importación. Es posible usar la opción Check Model (Comprobar modelo) en la herramienta Rational Rose para verificar si están libres de errores.
  • Antes de comenzar a planificar la migración de subunidades de un modelo de Rose, es importante que lea el artículo de IBM developerWorks "How to use IBM Rational Rose Model Importer: Part 1. How to migrate UML models to Rational Software Architect" (verRecursos).

Importación de subunidades de Rational Rose

Es posible importar subunidades desde los modelos de Rational Rose hasta el entorno de Software Architect de las siguientes formas:

  1. Como fragmentos, análogos a las subunidades de Rational Rose.
  2. Como modelos independientes.
  3. Como paquetes raíz.
  4. También es posible importar algunas subunidades como modelos, otras como paquetes raíz y otras como fragmentos.
  5. O asignar subunidades a modelos y paquetes existentes.
  6. O adoptar un enfoque mixto: reasignar algunas subunidades y convertir otras a fragmentos, modelos o paquetes raíz.

Importación de subunidades como fragmentos

Cuando se importan subunidades como fragmentos, cada una de las subunidades (archivo .cat) de IBM® Rational® Rose será migrada como fragmento (archivo .efx) a la solución Rational Software Architect. Por ejemplo, SubunitX.cat de Rational Rose se convirtió en SubunitX.efx en la herramienta Software Architect, como se puede ver en la figura 1.

Figura 1. Conversión de subunidades de Rational Rose en fragmentos de Rational Software Architect
Screenshot shows subunits converted to fragments

Importación de subunidades como modelos

Cuando se importan subunidades como modelos, cada una de las subunidades (archivo .cat) de la solución Rational Rose será importada como un modelo independiente (archivo .emx) a la herramienta Software Architect y se creará un acceso directo, en el modelo que contiene la subunidad, para el modelo recién creado (a partir de la subunidad), como se puede ver en la figura 2. Todas las referencias que se hacen a los elementos de las subunidades se actualizan de manera automática en los elementos del modelo creado a partir de la subunidad. Por ejemplo, SubunitX.cat del modelo ModelA de la solución Rational Rose se convirtió en SubunitX.emx en el entorno de Rational Software Architect después de su importación. Se creó un nuevo acceso directo para la subunidadSubunitXen ModelA, que apunta al modelo recién creado SubunitX (SubunitX.emx) dentro del proyecto denominado Shared.

Figura 2. Conversión de subunidades de la herramienta Rational Rose en modelos de la solución Rational Software Architect
Picture shows subunits converted to models.
Figura 2.2 Conversión de subunidades de la herramienta Rational Rose en modelos de la solución Rational Software Architect
Picture shows subunits converted to models.

Importación de subunidades como paquetes

Cuando se importan subunidades como paquetes, cada una de las subunidades (archivo .cat) de Rational Rose será importada como un modelo independiente (archivo .emx tipo paquete) a la solución Software Architect. El modelo que contiene la subunidad agregará una importación de elemento al paquete recién creado (a partir de la subunidad), como se puede ver en la figura 3. Todas las referencias que se hacen a los elementos de las subunidades se actualizan de manera automática en los elementos del paquete creado a partir de la subunidad. Por ejemplo, SubunitX.cat del modelo ModelA de la herramienta Rational Rose se convirtió enSubunitX.emx (tipo paquete) en la solución Software Architect después de su importación. Se creó una nueva importación de elemento para la subunidad SubunitX en ModelA, que apunta al paquete recién creado SubunitX (SubunitX.emx) dentro del proyecto Shared.

Figura 3. Conversión de subunidades de la herramienta Rational Rose en paquetes de la solución Rational Software Architect
Graphic shows subunits converted to packages
Figura 3.2 Conversión de subunidades de la herramienta Rational Rose en paquetes de la solución Rational Software Architect
Graphic shows subunits converted to packages

Pasos para importar subunidades como fragmentos, modelos o paquetes raíz

Siga los pasos de "Part 1. How to migrate UML models to Rational Software Architect" (verRecursos) para importar el modelo de Rational Rose con sus subunidades. Esta sección muestra el uso paso a paso de la página del asistente Rational Rose Model Subunit Conversion para convertir las subunidades.

Nota:

La página del asistente "Rational Rose Model Subunit Conversion" cambió en Rational Software Architect Standard Edition Versión 7.5.2 para reflejar las mejoras de la función de conversión de subunidades; por lo tanto, observará que la página del asistente presenta algunas diferencias en el paso 1 y el paso 2 de este artículo.

Paso 1. Habilitar la conversión de subunidades

En el asistente Rational Rose Model Import, en la página Rational Rose Model Subunit Conversion, active la casilla de verificación Convert subunits to fragments, models or packages (Convertir subunidades en fragmentos, modelos o paquetes), como se puede ver en la figura 4.

Figura 4. Asistente Rational Rose Model Subunit Conversion
Graphics shows the Wizard page

De manera predeterminada, todas las subunidades se convierten en fragmentos. Por eso, cuando el usuario habilita la conversión de subunidades, se habilita la tabla Subunits list (Lista de subunidades) y todas las subunidades de la tabla tienen la columna Convert to/Share (Convertir en/Compartir) establecida en fragment (fragmento).

Paso 2. Especificar la opción de conversión de las subunidades

Una vez finalizado el paso 1, todas las subunidades de la tabla de la lista de subunidades se convierten, de manera predeterminada, en fragmentos. Es necesario modificar la lista de subunidades para poder importar subunidades como modelos independientes o paquetes raíz. Existen dos maneras de realizarlo:

  • Opción 1: En la tabla Subunits list, seleccione el nombre de una subunidad y haga clic en la columna Convert to/Share (Convertir en/Compartir); aparecerá una lista desplegable con tres opciones: Fragment (Fragmento), Model (Modelo) y Package (Paquete), como se puede ver en la figura 5. Seleccione una de las opciones de conversión de subunidades.
Figura 5. Lista desplegable en la tabla Subunits list
Drop-down list showing subunit conversion options
  • Opción 2:Haga clic con el botón derecho en la tabla Subunits list; aparecerá el menú emergente Convert subunits (Convertir subunidades), como se puede ver en la figura 6. Seleccione la opción All to (Todas en); aparecerá un submenú con tres opciones: Fragment, Model y Package, como se puede ver en la figura 6. Seleccione una de las opciones; la columna Convert to/Share de todas las subunidades de la tabla Subunits list se actualizará con el tipo seleccionado. El menú emergente es muy útil cuando existe un gran número de subunidades y todas ellas deben ser convertidas en el mismo tipo durante la importación.
Figura 6. Menú emergente en la tabla Subunits list
Pop-up menu to specify subunit choices.

Lea el paso 3 si va a importar una o más subunidades como fragmentos. Lea el paso 4 si va a importar una o más subunidades como modelos o paquetes raíz.

Paso 3. Seleccionar la convención de nombres de los fragmentos

Este paso es aplicable únicamente cuando se importan una o más unidades como fragmentos. Seleccione el nombre del fragmento a través de la opción adecuada del panel Fragment creation options (Opciones de creación de fragmentos), como se puede ver en la figura 7. Para crear fragmentos con el nombre de archivo de la subunidad, haga clic en Use subunit file names (Usar nombres de archivo de subunidad); para usar el nombre de paquete de la subunidad, haga clic en Use subunit package names (Usar nombres de paquete de subunidad). Tomemos como ejemplo una subunidad SubunitA.cat que tiene el nombre de paquete definido como PackageA en el modelo de Rational Rose. Si selecciona la opción Use subunit file names, el nombre del fragmento se establecerá en SubunitA_cat.efx después de la importación, pero si elige Use subunit package names, el nombre del fragmento se establecerá en PackageA_cat.efx.

Figura 7. Opciones de creación de fragmentos, modelos o paquetes
Graphic shows options for subunit conversions.

Paso 4. Especificar el proyecto y la convención de nombres de los modelos o paquetes raíz

Estos pasos son aplicables únicamente cuando se importan una o más subunidades como modelos o paquetes raíz.

1. Especificar el proyecto

Es necesario especificar el proyecto para la creación del modelo o paquete raíz usando el panel Model/Package creation options (Opciones de creación de modelo/paquete raíz), como se puede ver en la figura 7. Para usar los proyectos existentes, seleccione la opción Existing project (Proyecto existente) y use el botón Browse (Examinar) para seleccionar uno de los proyectos existentes del área de trabajo. Para crear un nuevo proyecto, seleccione la opción New project (Nuevo proyecto) y escriba el nombre que se usará para el nuevo proyecto en el cuadro de texto Project name (Nombre de proyecto). El nuevo proyecto se creará en la ubicación especificada en el cuadro de texto Location (Ubicación); la ubicación se establecerá, de manera predeterminada, en el área de trabajo actual. Para cambiar la ubicación, desactive la casilla de verificación Use Default (Usar predeterminada); de esta manera se podrá especificar la nueva ubicación con el botón Browse.

2. Seleccionar la estructura del directorio

Especifique la estructura del directorio que se usará para los modelos o paquetes raíz usando el panel Create models/packages (Crear modelos/paquetes), como se puede ver en la figura 7. Para mantener la misma estructura jerárquica que existe en Rational Rose, seleccione la opción With subunit directory structure (Con estructura de directorio de subunidad); para imponer una estructura de directorio plana, seleccione la opción In one directory (En un directorio). Por ejemplo, SubunitA.cat está almacenada en la ubicación C:\XYZ en el modelo de Rational Rose, es decir, C:\XYZ\SubunitA.cat. Se importan las subunidades en el proyecto de modelo RSA ABC ubicado en C:\workspace, es decir, C:\workspace\ABC. Si se selecciona la opción With subunit directory structure, SubunitA.emx se creará dentro del proyecto ABC preservando la estructura del directorio, es decir, C:\workspace\ABC\XYZ\SubunitA.emx; si se selecciona la opción In one directory, SubunitA.emx se creará dentro del proyecto ABC, es decir, C:\workspace\ABC\SubunitA.emx

3. Seleccionar la convención de nombres

Seleccione el nombre del modelo o paquete raíz a través de la opción adecuada del panel For model/package file names (Para nombres de archivo de modelo/paquete), como se puede ver en la figura 7. Para crear un modelo o paquete raíz con el nombre de archivo de la subunidad, haga clic en Use subunit file names (Usar nombres de archivo de subunidad); para usar el nombre de paquete de la subunidad, haga clic en Use subunit package names (Usar nombres de paquete de subunidad). Tomemos como ejemplo una subunidad SubunitA.cat que tiene el nombre de paquete definido como PackageA en el modelo de Rational Rose. Si selecciona la opción Use subunit file names, el nombre del modelo o paquete raíz se establecerá en SubunitA.emx después de la importación, pero si elige Use subunit package names, el nombre del modelo o paquete raíz se establecerá en PackageA.emx.

Una vez especificadas las opciones adecuadas para la importación de subunidades, los modelos, paquetes raíz y fragmentos se crearán en RSA y se visualizarán en la vista Project Explorer (Explorador de proyectos).


Mapeo de subunidades

La herramienta Rational Rose soporta el uso compartido de las subunidades entre dos o más modelos, permitiendo la reutilización de los componentes de los modelos. Es posible usar la función de mapeo de subunidades de Rational Rose Model Importer para importar este tipo de modelos de manera que puedan compartir las subunidades incluso después de su importación al entorno de Software Architect. La función de mapeo de subunidades permite compartir subunidades después de su importación de dos maneras diferentes, como se puede ver en las siguientes secciones.

1. Importar subunidades compartidas como modelo y mapear

La primera vez que se importen las subunidades compartidas, es necesario convertirlas en un modelo, como se explicó anteriormente en la sección Pasos para importar subunidades como fragmentos, modelos o paquetes raíz. Ahora bien, cada vez que se importan nuevos modelos que contienen la misma subunidad, es necesario usar la función de mapeo de subunidades de Rational Rose Model Importer, como se explicará en la sección Asignación de subunidades a modelos y paquetes existentes. Esta función configura el nuevo modelo en el entorno de Software Architect a fin de reutilizar el modelo existente (creado a partir de la misma subunidad compartida).

Analicemos un ejemplo para tener una mejor comprensión de estos conceptos. Existen dos modelos en Rational Rose, ModelA y ModelB, que usan la misma subunidad SubunitX. Al importar ModelA, convierta SubunitX en un nuevo modelo dentro del proyecto Shared. Después de la importación, los modelos tendrán una apariencia similar a la de la figura 8:

Figura 8. Conversión de la subunidad SubunitX de Rational Rose en el modelo SubunitX del entorno de Software Architect después de su importación
Picture shows models generated from subunits.

Al importar ModelB, que contiene la misma subunidad compartida SubunitX, use la función de mapeo de subunidades de Rational Rose Model Importer. ModelB será importado a la solución Rational Software Architect y tendrá un acceso directo al modelo SubunitX del proyecto Shared, como se puede ver en la figura 9. De esta manera, tanto ModelA como ModelB compartirán la subunidad SubunitX como modelos.

Figura 9. Reasignación de la subunidad SubunitX del modelo ModelB al modelo SubunitX del proyecto Shared después de su importación
Remap of subunits to existing models.

2. Importar subunidades compartidas como paquete y mapear

La primera vez que se importen las subunidades compartidas, es necesario convertirlas en un paquete raíz (modelo con tipo paquete), como se explicó anteriormente en la sección Pasos para importar subunidades como fragmentos, modelos o paquetes raíz. Cada vez que se importan nuevos modelos que contienen la misma subunidad, es necesario usar la función de mapeo de subunidades de Rational Rose Model Importer, como se explicará en la sección Asignación de subunidades a modelos y paquetes existentes. Esta función configura el nuevo modelo en la solución Software Architect a fin de reutilizar el modelo existente (creado a partir de la misma subunidad compartida).

Analicemos un ejemplo para tener una mejor comprensión de este concepto. Existen dos modelos en IBM® Rational® Rose, ModelA y ModelB, que usan la misma subunidad SubunitX. Al importar ModelA, convierta SubunitX en un nuevo paquete dentro del proyecto Shared. Después de la importación, los modelos tendrán una apariencia similar a la de la figura 10.

Figura 10. Conversión de la subunidad SubunitX de Rational® Rose en el paquete SubunitX de Rational® Software Architect después de su importación
Picture shows packages generated from subunits.

Al importar ModelB, que contiene la subunidad compartida SubunitX, use la función de mapeo de subunidades de Rational Rose Model Importer. ModelB será importado a la solución Software Architect y tendrá una importación de elemento para el paquete SubunitX del proyecto Shared, como se puede ver en la figura 11. De esta manera, tanto ModelA como ModelB compartirán la subunidad SubunitX como paquetes raíz.

Figura 11. Reasignación de la subunidad SubunitX del modelo ModelB al paquete SubunitX del proyecto Shared después de su importación
Remapping subunits to existing packages.

Asignación de subunidades a modelos y paquetes existentes

Siga estos pasos para asignar subunidades a modelos y paquetes existentes.

Paso 1. Habilitar el mapeo de subunidades

En el asistente Rational Rose Model Import, en la página Rational Rose Model Subunit Conversion, active la casilla de verificación Map subunits to existing models/packages (Asignar subunidades a modelos/paquetes existentes), como se puede ver en la figura 12.

Figura 12. Asistente Rational Rose Model Subunit Conversion
Picture shows subunit conversion Wizard page.

Paso 2. Seleccionar la lista de proyectos de modelo para el mapeo

Use el panel Source Directory (Directorio de origen), ver figura 12, para seleccionar la lista de proyectos de modelo que se usarán para asignar la subunidad que se importa. Haga clic en el botón Browse (Examinar) del panel Source Directory; se abrirá un cuadro de diálogo que permite seleccionar la lista de proyectos para la asignación de subunidades, como se puede ver en la figura 13.

Figura 13. Cuadro de diálogo Select the input folder
Graphic shows dialog to select existing projects.

Después de seleccionar la lista de proyectos y hacer clic en el botón OK (Aceptar), el cuadro de texto Existing project (Proyecto existente) se actualizará con la lista de proyectos seleccionados por el usuario, como se puede ver en la figura 14.

Figura 14. Cuadro de texto Existing project
Text box showing the existing project.

Las subunidades que se pueden mapear serán actualizadas automáticamente en la tabla Subunits list (Lista de subunidades); Convert to/Share (Convertir en/Compartir) se establecerá en Share (Compartir) y Sharable (Compartible) se establecerá en Yes (Sí), como se puede ver en la figura 15. El área de Convert To/Share quedará deshabilitada y vacía para todas las subunidades anidadas de una subunidad compartible, sin posibilidad de modificarse. Por ejemplo, SubunitY y SubunitZ están anidadas dentro de la subunidad SubunitX y por ello quedan deshabilitadas y vacías, como se puede ver en la figura 15. Las otras subunidades que no se pueden compartir conservan los valores anteriores en la columna Convert to/Share.

Figura 15. Actualización de tabla Subunits list con información de uso compartido
Graphic shows subunits list table.

Paso 3. Personalizar la conversión de subunidades

Es posible usar la tabla Subunits list de la página Rational Rose Model Subunit Conversion para modificar y refinar las opciones de conversión de subunidades. Las siguientes modificaciones están permitidas en la tabla Subunits list.

1. Deshacer uso compartido de la subunidad

Si una subunidad se puede compartir, es decir, si la columna Sharable (Compartible) está establecida en Yes (Sí), pero usted no desea compartir esa subunidad, es posible deshacer el uso compartido de la subunidad modificando la columna Convert to/Share (Convertir en/Compartir) a través de la selección de Fragment, Model o Package de la lista desplegable, como se puede ver en la figura 5. Una vez finalizado el proceso de importación, cada subunidad será importada como un nuevo fragmento, modelo o paquete raíz en función de la opción especificada. Todas las subunidades anidadas quedan automáticamente no compartidas.

2. Compartir la subunidad

Si la subunidad tiene la columna Sharable establecida en Yes (Sí), pero la sección Convert to/Share no está establecida en Share, es posible establecer Convert to/Share en Share para compartir la subunidad, como se puede ver en la figura 16. Todas las subunidades anidadas quedan automáticamente deshabilitadas y Convert To/Share queda vacía.

Nota: La columna Convert To/Share de las unidades anidadas no se puede modificar, ni siquiera cuando no esté establecida en Share.

Figura 16. Establecimiento de la columna Convert to/Share en Share
Modifying sharable subunits to share

3. Modificar subunidades no compartidas

Es posible cambiar la conversión de las subunidades no compartidas (es decir, aquéllas con la columna Sharable vacía) en el tipo deseado usando la lista desplegable de la columna Convert to/Share con sus tres opciones: Fragment, Model y Package, como se puede ver en la figura 5. Seleccione la opción deseada para la conversión de las subunidades.

También es posible modificar las subunidades no compartidas usando el menú emergente. Haga clic derecho en la tabla Subunits list; aparecerá el menú emergente Convert subunits (Convertir subunidades), como se puede ver en la figura 17. Seleccione la opción All non-share to (Todas las no compartidas a); aparecerá un submenú con tres opciones: Fragment, Model y Package, como se puede ver en la figura 6. Seleccione la opción deseada; la columna Convert to/Share de todas las subunidades no compartidas de la tabla Subunits list se actualizará con el tipo seleccionado. El menú emergente es muy útil cuando existe un gran número de subunidades no compartidas y todas ellas deben ser convertidas en el mismo tipo durante la importación.

Figura 17. Menú emergente de subunidades no compartidas en la tabla Subunits list
Menu to modify non-shared subunits.

Resumen

Las subunidades de un modelo de Rational Rose se pueden importar a la solución Rational Software Architect como fragmentos, modelos o paquetes. Las subunidades que son compartidas por múltiples modelos en la herramienta Rational Rose también se pueden compartir después de su importación al entorno de Software Architect usando la función de mapeo de subunidades de Rational Rose Model Importer. Además, es posible adoptar un enfoque mixto: reasignar algunas subunidades y convertir otras a fragmentos, modelos o paquetes raíz, habilitando las opciones Convert subunits to fragments, models or packages (Convertir subunidades en fragmentos, modelos o paquetes) y Map subunits to existing models/packages (Asignar subunidades a modelos/paquetes existentes).


Acerca de la parte 3

En la tercera arte de esta serie de artículos, se analizarán nuevas funciones de Rational Rose Model Importer, como la capacidad de creación de perfiles basada en mapas de rutas de acceso. Además, el artículo incluirá la importación de modelos basados en marcos y algunas sugerencias para manipular un modelo de Rational Rose que use scripts.


Sugerencias

Si la conversión de subunidades produce errores, verifique los detalles del problema en la ventana Error Log (Registro de errores) para corregir el problema indicado.

Recursos

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Rational
ArticleID=966989
ArticleTitle=Cómo usar IBM Rational Rose Model Importer: Parte 2. Cómo migrar subunidades de un modelo UML de Rose a Rational Software Architect
publish-date=05052010