Contenido


Ingeniería inversa de diagramas UML usando IBM Rational Software Architect, Versión 7.5

Comments

Cree un árbol de herencia de clases usando Software Analyzer

En los lenguajes de programación orientados a objetos, la herencia le muestra los campos y los métodos comunes entre las clases heredadas dentro de una familia y exhibe los campos y métodos específicos para cada clase. Los desarrolladores y arquitectos pueden usar los árboles de herencia de las clases en un proyecto Java™para comprender las relaciones existentes entre las clases que forman parte del proyecto. Supongamos que usted creó o cargó un proyecto Java en IBM® Rational® Software Architect 7.5. Para crear un árbol de herencia en el proyecto, haga lo siguiente:

  1. Abra el Software Analyzer en Rational Software Architect V7.5 seleccionando Run > Analysis (Ejecutar > Análisis), como se observa en la Figura 1. Puede usar el Software Analyzer para generar informes basados en las reglas que usted seleccione. Rational Software Architect V7.5 incluye reglas dentro de los dominios de Java Architectural Discovery, Code Review, UML Model Metrics y UML Model. La creación de un árbol de herencia es una regla dentro del dominio de Java Architectural Discovery.
Figura 1. Abra el Software Analyzer
Abra el Software Analyzer
Abra el Software Analyzer
  1. Cree una configuración:
    1. En el campo Name (Nombre), ingrese un nombre.
    2. En el área Analysis Domains and Rules (Dominios de análisis y reglas), expanda la categoría Object-oriented Patterns (Patrones orientados a objetos) y marque la casilla de verificación Inheritance Tree (Árbol de herencia), como se observa en la Figura 2.
Figura 2. Cree un árbol de herencia
Cree un árbol de herencia
Cree un árbol de herencia

Haga clic aquí para ampliar la Figura 2.

  1. Haga clic sobre Analyze (Analizar). Se visualiza un árbol de herencia (ver la Figura 3). Dicho árbol de herencia le muestra que la clase Vehicle (Vehículo) tiene tres elementos secundarios: Bicycle(Bicicleta),Car (Auto), y PogoStick (Saltador). La clase Car (Automóvil) tiene dos elementos secundarios: FamilyCar (Automóvil familiar) y SportsCar (Automóvil deportivo). No hay información disponible sobre los campos y los métodos de la clase en el árbol de herencia. Para explorar los campos y los métodos de las clases, use un diagrama de navegación.
Figura 3. El Software Analyzer genera el árbol de herencia
El Software Analyzer genera el árbol de herencia
El Software Analyzer genera el árbol de herencia

Haga clic aquí para ampliar la Figura 3.

Explore los detalles del árbol de herencia usando un diagrama de navegación

El árbol de herencia que usted creó con el Software Analyzer no incluye detalles sobre los campos y los métodos de las clases. Para obtener estos detalles de cada clase dentro de un cierto alcance, use un diagrama de navegación. El alcance puede ser un paquete Java, un proyecto, un conjunto de trabajos o un espacio de trabajo. Por ejemplo, use la clase FamilyCar como punto de partida para explorar sus detalles con un diagrama de navegación:

  1. Para abrir un diagrama de navegación, presione el botón derecho del mouse sobre la clase FamilyCar.java y seleccione Visualize (Visualizar) > Explore in Browse Diagram (Explorar en diagrama de navegación), como se observa en la Figura 4.
Figura 4. Explore la clase FamilyCar en el diagrama de navegación
Explore la clase FamilyCar en el diagrama de navegación
Explore la clase FamilyCar en el diagrama de navegación
  1. En la ventana Browse Diagram, en la barra de herramientas de relaciones, haga clic sobre el botón Extends, como se observa en la Figura 5. La barra de herramientas de relaciones incluye cinco tipos de relaciones:
    • Extends: Explora las clases desde las que se amplía FamilyCar.
    • Dependency (Dependencia): Explora las clases que se usan en los métodos de la clase FamilyCar.
    • Realization (Realización): Explora la interfaz implementada por FamilyCar.
    • Association (Asociación): Explora las clases que se relacionan con FamilyCar.
    • Declares: Explora los paquetes declarados en la clase FamilyCar.
    • Degree of separation (Grado de separación): Explora el nivel de extensión que la relación aplica.
Figura 5. Diagrama de navegación de la clase FamilyCar con un grado de separación
Diagrama de navegación de la clase FamilyCar con un grado de separación
Diagrama de navegación de la clase FamilyCar con un grado de separación
  1. Al lado de la barra de herramientas de relaciones se encuentra un grado de separación, que le indica la cantidad de niveles de relación de la clase FamilyCar que se muestran en el diagrama. En la Figura 5, el valor 1 (uno) indica que el diagrama sólo muestra la clase FamilyCar. Cuando usted aplica el valor 2, el diagrama muestra las clases FamilyCar, Car y Vehicle, como se observa en la Figura 6.
Figura 6. La clase FamilyCar en un diagrama de navegación con 2 grados de separación
La clase FamilyCar en un diagrama de navegación con 2 grados de separación
La clase FamilyCar en un diagrama de navegación con 2 grados de separación

El diagrama de navegación del árbol de herencia es un diagrama temporal que usted no puede guardar. Generalmente, usted usa diagramas de navegación para explorar una clase determinada o para documentar el diseño de un proyecto.

Genere un árbol de herencia usando un diagrama de tema

El ejemplo anterior le mostró cómo usar un diagrama de navegación para visualizar el árbol de herencia de una clase. En ciertas circunstancias, es probable que usted desee crear un diagrama que represente de manera consistente todas las clases heredadas de la clase FamilyCar durante el desarrollo del programa. En este caso, usted puede usar un diagrama de tema para representar el árbol de herencia de una clase determinada. A diferencia del caso de los diagramas de navegación, usted puede guardar los diagramas de tema en un archivo modelo para volverlos a usar.

Para crear un árbol de herencia de una clase en un diagrama de tema, haga lo siguiente:

  1. Abra un diagrama de tema de una clase determinada, como por ejemplo FamilyCar, presionando el botón derecho del mouse sobre la clase FamilyCar.java y seleccionando Visualize > Add to New Diagram File > Topic Diagram (Visualizar > Agregar a nuevo archivo de diagrama > Diagrama de tema), como se observa en la Figura 7.
Figura 7. Abra la clase FamilyCar en un diagrama de tema
Abra la clase FamilyCar en un diagrama de tema
Abra la clase FamilyCar en un diagrama de tema
  1. Genere un diagrama de tema:
    1. Seleccione un tema, como por ejemplo Inherited Java Classes (Clases Java heredadas) (N levels).
    2. Especifique los elementos relacionados que se mostrarán. En este ejemplo, la relación Extend se selecciona con expansión indefinida tanto en dirección entrante como en dirección saliente con el objetivo de representar todo el árbol de herencia.
    3. Haga clic sobre Finish. El resultado aparece a la derecha de la Figura 8.

Para responder a los cambios en el código fuente de Java, actualice el diagrama presionando el botón derecho del mouse sobre el espacio de trabajo del diagrama de tema y haciendo clic sobre Refresh (Actualizar).

Figura 8. Cree un árbol de herencia usando un diagrama de tema
Cree un árbol de herencia usando un diagrama de tema
Cree un árbol de herencia usando un diagrama de tema

Haga clic aquí para ampliar la Figura 8.

Integre un diagrama de clase generado en un archivo modelo usando la función Harvest

En Rational Software Architect, usted puede transformar un archivo modelo en código Java. Usted también puede crear un archivo modelo creando una clase nueva con algunos atributos y métodos. Probablemente, también desee integrar las clases Java ya existentes de un proyecto en el archivo modelo. Para usar la función Harvest (Recolectar) en Rational Software Architect para copiar un diagrama de clase generado a su archivo modelo, haga lo siguiente:

  1. Cree un archivo modelo en blanco haciendo clic sobre File > New item (Archivo > Elemento nuevo). Se abre una nueva ventana asistente, como se observa en la Figura 9.
Figura 9. Abra el asistente de Modelos
Abra el asistente de Modelos
Abra el asistente de Modelos
  1. Haga clic sobre Next (Siguiente) y siga el flujo de trabajo que aparece en la Figura 10, que le muestra un diagrama libre.
Figura 10: Cree un archivo modelo
Figura 10: Cree un archivo modelo
Figura 10: Cree un archivo modelo

Haga clic aquí para ampliar la Figura 10.

  1. Copie los diagramas de clase en el nuevo archivo modelo usando la función Harvest:
    1. Seleccione todas las clases que figuran en el diagrama (vea la Figura 11).
    2. Presione el botón derecho del mouse sobre el diagrama y, luego de esto, haga clic sobre Harvest.
Figura 11. Recolecte las clases seleccionadas en el diagrama de navegación
Recolecte las clases seleccionadas en el diagrama de navegación
Recolecte las clases seleccionadas en el diagrama de navegación
  1. Pegue las clases en el nuevo archivo modelo. La Figura 11 muestra el resultado.

En la Figura 11, ni la clase Vehicle ni la clase Car muestran información sobre los campos y los métodos. Para que se visualice esta información, seleccione una o más clases en el diagrama, presione el botón derecho del mouse sobre esta / estas clases y haga clic sobre Filters > Show / Hide Compartment > All Compartments (Filtros > Mostrar / Ocultar compartimiento > Todos los compartimientos), como se observa en la Figura 12. Para ver los resultados finales de habilitar los compartimientos, vea la Figura 13.

Figura 12. Mostrar todos los compartimientos de la clase Vehicle
Mostrar todos los compartimientos de la clase Vehicle
Mostrar todos los compartimientos de la clase Vehicle

Haga clic aquí para ampliar la Figura 12.

Figura 13. Compartimientos de la clase Vehicle
Compartimientos de la clase Vehicle
Compartimientos de la clase Vehicle

Resumen

Para analizar y expandir proyectos Java, puede usar las herramientas de Rational Software Architect, Versión 7.5 para hacer lo siguiente:

  • Para generar un árbol de herencia para todas las clases en un proyecto, use el Software Analyzer.
  • Para visualizar los detalles de una clase que forma parte de un árbol de herencia, use un diagrama de navegación.
  • Para usar una consulta fija con el objetivo de monitorear los cambios de código, use un diagrama de tema.
  • Para copiar una clase de un árbol de herencia y pegarla en un archivo modelo, use la función Harvest.

Recursos para Descargar


Temas relacionados


Comentarios

Inicie Sesión o Regístrese para agregar comentarios.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Rational
ArticleID=427895
ArticleTitle=Ingeniería inversa de diagramas UML usando IBM Rational Software Architect, Versión 7.5
publish-date=09112009