Altova UModel 2024

Ingeniería inversa (del código al modelo)

Inicio Anterior Inicio Siguiente

En este apartado del tutorial explicamos cómo importar código de programa desde un directorio hasta un proyecto de UModel nuevo (ingeniería inversa). También aprenderá cómo agregar una clase nueva al modelo, prepararla para la generación de código y combinar los cambios con el código Java original (ingeniería directa). Aunque en este apartado trabajaremos con código Java, el proceso es el mismo cuando se importa código C# o VB.NET.

 

Nota: el código Java de muestra que se utiliza en este apartado está en un archivo ZIP en la ruta de acceso C:\Usuarios\<usuario>\Documentos\Altova\UModel2024\UModelExamples\OrgChart.zip. Antes de empezar el tutorial deberá descomprimirlo en el mismo directorio.

 

Importar código desde un directorio

1.En el menú Archivo haga clic en el comando Nuevo.

2.En el menú Proyecto haga clic en Importar directorio de código fuente.

3.Seleccione el lenguaje del código fuente (en nuestro ejemplo es Java).

4.Haga clic en el botón Examinar btn_browse, seleccione el directorio OrgChart que descomprimió antes de empezar el tutorial y haga clic en Siguiente. Observe que está marcada la casilla Habilitar la generación de diagramas, lo cual ordena a UModel que genere Diagramas de clases y Diagramas de paquetes a partir del código fuente.

um_reverse_01

5.En la siguiente pantalla marque la casilla Generar un diagrama por paquete. Esto ordena a UModel que cree un diagrama nuevo por cada paquete. Las opciones de estilo de los diagramas se pueden configurar aquí o más adelante.

um_reverse_02

6.Haga clic en Siguiente para continuar. En la siguiente pantalla puede definir las opciones de generación de dependencias entre paquetes.

um_reverse_03

7.Haga clic en Finalizar. Cuando la aplicación lo solicite, guarde el modelo nuevo en un directorio del sistema. Los datos se analizan y se crea un paquete nuevo llamado "OrgChart".

tut-01-04

8.Expanda el paquete nuevo y siga expandiendo los subpaquetes hasta llegar al paquete OrgChart (com | OrgChart). Haga doble clic en el icono del diagrama Contenido de OrgChart:

um_reverse_05

El diagrama "Contenido de OrgChart" aparece ahora en la ventana principal.

 

um_reverse_06

 

Agregar una clase nueva al diagrama OrgChart

Hasta ahora hemos creado un modelo mediante ingeniería inversa a partir de código Java que ya teníamos. El modelo que hemos creado también incluye varios diagramas que se generaron automáticamente. Ahora vamos a ampliar el modelo con una clase nueva.

 

1.Haga clic con el botón derecho dentro del diagrama "Contenido de OrgChart" y seleccione Nuevo/a | Clase en el menú contextual.

2.Haga clic en el título de la nueva clase e cámbiele el nombre por CompanyType.

um_reverse_07

3.Añada tres operaciones nuevas a la clase (pulsando F8): CompanyType(), getCompanyType():String, setCompanyType():String.

um_reverse_08

Nota: como el nombre de la clase es CompanyType, a la operación CompanyType() se le asigna automáticamente el estereotipo <<constructor>>.

 

Habilitar la clase nueva para la generación de código

Ahora que el modelo incluye una clase nueva, debemos actualizar el código subyacente para que el modelo y el código estén sincronizados. Sin embargo, si pulsamos F11 para revisar la sintaxis del proyecto en este momento, se emite una advertencia en la ventana Mensajes: 'CompanyType' no tiene una realizaciónDeComponente para un componente. Se generará una RealizaciónDeComponente para el componente OrgChart. El motivo de esta advertencia es que para poder generar código la nueva clase debe realizar un componente (véase Ingeniería directa (del modelo al código)). En algunos casos, como en este ejemplo, UModel puede generar la realización necesaria de forma automática. Sin embargo, también puede definir la dependencia de realización manualmente:

 

1.Seleccione la clase CompanyType en el diagrama, busque la propiedad nombre del archivo de código en la ventana Propiedades e introduzca el valor "CompanyType.java".

um_reverse_09

2.En la ventana Estructura del modelo haga clic en la nueva clase CompanyType y arrástrela hacia arriba hasta el componente OrgChart situado dentro del paquete "Component View". Si pasa el puntero por encima de un componente aparece una notificación.

um_reverse_10

Esto crea una relación de tipo "RealizaciónDeComponente" entre una clase y un componente. También puede crear esta relación dibujando una línea de relación en el diagrama de componentes (véase Diagramas de componentes) Expanda el elemento Relaciones del componente OrgChart para ver la relación que acaba de crear.

um_reverse_11

 

Combinar código de programa con un paquete

En UModel puede generar código a nivel de paquete, de componente o de proyecto (véase Sincronizar el modelo y el código fuente). En este ejemplo vamos a generar código a nivel de componente:

 

1.En la ventana Estructura del modelo navegue hasta el componente OrgChart del paquete "Component View".

2.Haga clic con el botón derecho en el componente OrgChart y seleccione el comando Ingeniería de código | Combinar código de programa con Componente de UModel del menú contextual.

um_reverse_12

En la ventana Mensajes aparecen los resultados de la revisión sintáctica, así como el estado del proceso de sincronización.

um_reverse_13

Cuando termine el proceso, la nueva clase CompanyType.java estará en la carpeta ...\OrgChart\com\OrgChart\.

 

Todos los métodos y cambios realizados en el código serán eliminados en forma de comentarios o eliminados directamente, dependiendo de la opción seleccionada en el grupo de opciones Al eliminar código del cuadro de diálogo "Configurar sincronización".

 

¡Enhorabuena! Acaba de completar un ciclo de ingeniería de ida y vuelta en UModel.

© 2017-2023 Altova GmbH