Exercice 1.4 : Résolution d'un problème structurel
On suppose ici que vous avez effectué les étapes
de l'Exercice 1.1 : Importation des ressources requises. Dans
l'exercice 1.4, vous commencez par lire un scénario mettant en jeu un ou plusieurs utilisateurs. Puis
vous prenez le rôle de l'architecte logiciel décrit dans ce scénario et utilisez le projet que vous
avez importé au cours de l'exercice 1.1 pour effectuer le présent
exercice.
Scénario utilisateurs
Pour vérifier le code afin d'y détecter les éventuelles dépendances
cycliques, l'architecte exécute une révision de code Analyse structurelle qui se limite à
rechercher de telles dépendances. La révision de code trouve effectivement des dépendances cycliques
et l'architecte constate qu'il existe des corrections rapides pour
certaines d'entre elles. Une correction rapide est un moyen automatisé de remédier
à une anomalie courante. Pour restructurer le code afin d'y éliminer les cycles, l'architecte
applique la correction rapide à l'une des dépendances cycliques.
Dans le dernier exercice, l'architecte exécute une révision de code et
corrige l'une des anomalies.
Exercice
Dans cet exercice, vous accomplissez les tâches suivantes :
- Exécuter une révision de code afin de rechercher les dépendances cycliques.
- Déterminer si une correction rapide est disponible pour une dépendance cyclique.
- Appliquer une correction rapide pour résoudre une dépendance cyclique :
- Voir la liste des modifications à apporter.
- Visualiser, pour chaque modification, le code existant et le code restructuré.
- Obtenir une confirmation de l'application de la correction.
Sélection d'une révision de code afin de rechercher les dépendances cycliques
Pour sélectionner une révision de code recherchant les dépendances cycliques :
- Sur la barre d'outils de la vue Révision de code,
cliquez sur l'icône Gérer les règles,
.

- Dans la liste Sélectionnez la révision de code,
cliquez sur Révision de code Analyse structurelle.
- Développez la branche du dossier Analyse structurelle et
désélectionnez toutes les entrées excepté le sous-dossier Dépendance cyclique.
- Développez la branche du sous-dossier Dépendance cyclique pour voir les
règles qui seront appliquées dans la révision de code, comme le montre l'illustration
suivante. Cliquez sur OK.

Sélection d'une base de code à réviser
Pour sélectionner l'espace de travail comme base de code à réviser :
- Sur la barre d'outils de la vue Révision de code, cliquez
sur l'icône Révision (
) > Révision de Espace de travail.
Exécution de la révision de code
Une fois que vous avez sélectionné la base de code à réviser,
la révision de code s'exécute. Vous pouvez suivre son état en observant la barre de progression,
dans l'angle inférieur droit de la vue.
Visualisation de la liste des dépendances cycliques détectées
Comme le montre l'écran suivant, la révision de code a trouvé
quatre dépendances cycliques. Une dépendance cyclique est un anti-modèle ("anti-pattern") indésirable
qui doit donc être évité. Dans une dépendance cyclique, un groupe d'objets est interconnecté d'une manière telle
qu'une modification de l'un d'eux pourrait affecter tous les autres.

- Développez le dossier Analyse structurelle : Dépendance cyclique et examinez les anomalies qu'il contient (voir
l'illustration suivante) :

- A chaque dépendance cyclique est affecté le niveau de gravité Problème (
), qui est le plus élevé.
- Pour deux des dépendances cycliques, une correction rapide (
) est disponible.
- Cliquez avec le bouton droit sur la troisième anomalie dans la
liste. Les choix proposés dans le menu contextuel Correction rapide varient en
fonction de la solution. Pour l'anomalie sélectionnée, la correction consiste à transférer
le champ statique de la classe de base vers une autre classe, ce qui a pour effet d'éliminer
la dépendance cyclique.
- Cliquez sur Correction rapide : Sortez le champ statique de la classe de base.

Application de la correction rapide
Dans le cas de la dépendance cyclique sélectionnée, la correction rapide consiste à transférer
le champ statique de la classe de base vers une autre classe. Vous pouvez choisir de transférer le champ dans une
classe existante ou dans une nouvelle classe.
Pour déplacer le champ vers une nouvelle classe :
- Dans l'illustration d'écran suivante, examinez les informations (également appelées "enchevêtrement" ou "Tangle") relatives
à la dépendance cyclique que vous allez corriger. Elles sont en lecture seule.
- Classes faisant partie de l'enchevêtrement (Tangle)
- Dépendances entre les classes dans l'enchevêtrement
- Cliquez sur Génération d'une nouvelle classe Java et entrez les informations suivantes :
- src/ pour le nom du dossier source
- com.ibm.r2a.rules.rsa.examples pour le nom du package
- Defaults pour le nom de classe

- Cliquez sur Aperçu pour voir le code que la correction rapide modifiera.
- Dans la section Modifications à apporter, développez la liste pour voir précisément ce que la correction
rapide changera dans le code lorsqu'elle déplacera le champ statique vers la nouvelle classe (voir l'illustration suivante).

- Cliquez sur la quatrième modification dans la liste (celle qui commence
par Font.java) pour obtenir une vue avec juxtaposition du code d'origine et
du code restructuré. Le code d'origine se trouve à gauche, tandis que le
code restructuré qui sera créé par la correction rapide
se trouve à droite.

- Cliquez sur OK pour
appliquer la correction rapide à toutes les modifications sélectionnées dans la liste.
- Une fois la correction rapide appliquée, une marque de sélection (coche) apparaît en regard
de l'anomalie sélectionnée, confirmant que le problème est résolu.

Vous avez terminé l'exercice 1.4 : Résolution d'un problème structurel
Mettre à profit la puissance des corrections rapides
Des corrections rapides sont fournies pour certaines anomalies courantes
détectées par les révisions de code. En appliquant une correction rapide fournie, vous disposez d'un moyen automatisé
de résoudre une dépendance cyclique. Vous pouvez :
- Identifier et évaluer les dépendances cycliques.
- Eliminer rapidement une dépendance cyclique au moyen d'une correction automatisée.
- Visualiser la liste des modifications qui seraient apportées au code par la correction rapide.
- Corriger les dépendances cycliques de manière cohérente et identique chaque fois qu'elles se produisent.
Conclusion de l'exercice 1.4
Vous avez terminé l'exercice 1.4 : Résolution d'un problème structurel Au cours de cet exercice, vous avez accompli les tâches suivantes :
- Exécuter une révision de code afin de rechercher les dépendances cycliques.
- Déterminer si une correction rapide est disponible pour une dépendance cyclique.
- Appliquer une correction rapide pour résoudre une dépendance cyclique :
- Voir la liste des modifications à apporter.
- Visualiser, pour chaque modification, le code existant et le code restructuré.
- Obtenir une confirmation de l'application de la correction.
Terminez ce tutoriel en passant en revue les objectifs de formation, dans la
section Résumé.