Ejercicio 1.4: Resolución de un problema estructural
En este ejercicio se da por supuesto que se ha completado el Ejercicio 1.1: Importación de los recursos necesarios. En el Ejercicio 1.4, en primer lugar se presenta un caso de ejemplo de usuario. Por lo tanto, se
asume el rol del arquitecto de software que se describe en el caso de ejemplo de usuario y se utiliza el proyecto que se ha importado en el Ejercicio 1.1 para completar el ejercicio.
Escenario de usuario
Para comprobar específicamente las dependencias cíclicas del código, el arquitecto ejecuta una revisión del código de análisis estructural que sólo busca este tipo de dependencias. La revisión del código encuentra algunas dependencias cíclicas y el arquitecto observa que existen arreglos rápidos para un par de ellas. Se proporciona un arreglo rápido de modo automatizado para reparar un problema encontrado común. Para refactorizar el código de modo que esté libre de ciclos, el arquitecto aplica el arreglo rápido a una dependencia cíclica.
En el ejercicio final, el arquitecto ejecuta una revisión del código y arregla uno de los problemas encontrados.
Ejercicio
En este ejercicio va a realizar las tareas siguientes:
- Ejecutar una revisión del código para buscar dependencias cíclicas.
- Reconocer cuándo una dependencia cíclica tiene un arreglo rápido suministrado.
- Aplicar un arreglo rápido para resolver una dependencia cíclica.
- Ver una lista de cambios que realizar.
- Visualizar el código existente y refactorizado para cada cambio.
- Obtener una confirmación de que el arreglo rápido se ha aplicado.
Selección de una revisión del código a fin de comprobar si existen dependencias cíclicas
Para seleccionar una revisión del código que compruebe si existen dependencias cíclicas:
- En la barra de herramientas de la vista Revisión del código, pulse el icono
Gestionar reglas,
.

- En la lista Seleccionar revisión del código, pulse Revisión del código de análisis estructural.
- Expanda la carpeta Análisis estructural y deseleccione todo excepto la subcarpeta
Dependencia cíclica.
- Expanda la subcarpeta Dependencia cíclica para ver las reglas que se van a aplicar a la revisión del código, tal como se muestra en la captura de pantalla siguiente. Pulse Aceptar.

Selección de un base de código para la revisión
Para seleccionar el espacio de trabajo como base de código para la revisión:
- En la barra de herramientas de la vista Revisión del código, pulse el icono Revisar
(
) > Espacio de trabajo de revisión.
Ejecución de la revisión del código
Una vez que ha seleccionado la base de código para la revisión, se ejecuta la revisión del código. Puede hacer un seguimiento del estado por medio de la barra de estado que se encuentra en la esquina inferior derecha de la vista.
Visualización de la lista de dependencias cíclicas encontradas
La revisión del código ha encontrado cuatro dependencias cíclicas, tal como se muestra en la captura de pantalla siguiente. Una dependencia cíclica es una antipatrón no deseado que se debe evitar. En una dependencia cíclica, un grupo de objetos está interconectado de tal modo que un cambio en cualquier objeto puede afectar a todos los demás.

- Expanda la carpeta Análisis estructural: Dependencia cíclica y observe los problemas encontrados que contiene, tal como se muestra en la captura de pantalla siguiente:

- Cada dependencia cíclica tiene el máximo nivel de gravedad de problema
(
) asignado.
- Dos de las dependencias cíclicas tienen un arreglo rápido
(
) para eliminar la dependencia.
- Pulse el botón derecho del ratón sobre el tercer problema encontrado de la lista. La elección
del menú emergente Arreglo rápido varía en función de la solución. Para la dependencia cíclica que ha seleccionado, el arreglo mueve el campo estático de la clase básica a otra clase, eliminando así la dependencia cíclica.
- Pulse Arreglo rápido: Mover campo estático de clase básica.

Aplicación del arreglo rápido
El arreglo rápido para la dependencia cíclica que ha seleccionado mueve el campo estático de la clase básica a otra clase. Puede elegir que se mueva el campo a una clase existente o a una nueva clase.
Para mover el campo a una nueva clase:
- En la captura de pantalla siguiente, revise la información de sólo lectura sobre la dependencia cíclica, a la que también se hace referencia como confusión, que va a arreglar:
- Clases que forman parte de la confusión
- Dependencias entre clases en la confusión
- Pulse Generar una nueva clase Java y escriba:
- src/ para el nombre de la carpeta origen
- com.ibm.r2a.rules.rsa.examples para el nombre del paquete
- Defaults para el nombre de la clase

- Pulse Vista preliminar para ver el código que va a cambiar el arreglo rápido.
- Expanda la lista Cambios a realizar, tal como se muestra en la captura de pantalla siguiente, para ver exactamente los cambios que va a efectuar el arreglo rápido en el código al mover el campo estático a la nueva clase.

- Pulse el cuarto cambio de la lista, que empieza por Font.java, para ver una vista del código
al lado de la otra. El código original se encuentra a la izquierda y el código refactorizado que va a crear el arreglo rápido está situado a la derecha.

- Pulse Aceptar para aplicar el arreglo rápido a todos los cambios seleccionados de la lista.
- Una vez que se ha aplicado el arreglo rápido, se muestra una marca de selección como confirmación, lo que indica que el problema se ha resuelto.

Ha completado el Ejercicio 1.4: Resolución de un problema estructural.
Aprovechamiento de la potencia de los arreglos rápidos
Se proporcionan arreglos rápidos para algunos problemas encontrados comunes en las revisiones de código. Al aplicar un arreglo rápido suministrado, dispone de un procedimiento automatizado para resolver una dependencia cíclica. Puede:
- Identificar y evaluar dependencias cíclicas.
- Eliminar la dependencia rápidamente con un arreglo rápido automatizado.
- Ver una lista de los cambios exactos que va a realizar el arreglo rápido en el código.
- Arreglar la dependencia cíclica de modo coherente cada vez.
Conclusión del Ejercicio 1.4
Ha completado el Ejercicio 1.4: Resolución de un problema estructural. en el que ha llevado a cabo las tareas siguientes:
- Ejecutar una revisión del código para buscar dependencias cíclicas.
- Reconocer cuándo una dependencia cíclica tiene un arreglo rápido suministrado.
- Aplicar un arreglo rápido para resolver una dependencia cíclica.
- Ver una lista de cambios que realizar.
- Visualizar el código existente y refactorizado para cada cambio.
- Obtener una confirmación de que el arreglo rápido se ha aplicado.
Para finalizar la guía de aprendizaje, revise los objetivos del curso que se indican en
Resumen.