Übung 1.4: Ein strukturelles Problem auflösen
Diese Übung setzt voraus, dass Sie Übung 1.1: Erforderliche Ressourcen importieren vollständig abgeschlossen haben. In Übung 1.4 lesen Sie zunächst das Benutzerszenario.
Anschließend übernehmen Sie den Aufgabenbereich des Softwarearchitekten, der im Benutzerszenario beschrieben
wurde und verwenden das Projekt, das Sie in Übung 1.1 zum Abschluss der Übung importiert haben.
Benutzerszenario
Um den Code speziell nach zyklischen Abhängigkeiten zu überprüfen, führt der Architekt eine Structural Analysis-Code-Überprüfung aus,
die nur nach solchen Abhängigkeiten sucht. Die Code-Überprüfung findet einige zyklische Abhängigkeiten und der Architekt
stellt fest, dass für einige davon Schnellkorrekturen vorhanden sind. Eine Schnellkorrektur ist eine mitgelieferte automatisierte Möglichkeit, ein allgemeines Untersuchungsergebnis zu reparieren.
Um den Code so zu refaktorieren, dass er frei von Zyklen ist, wendet der Architekt die Schnellkorrektur auf eine zyklische Abhängigkeit an.
In der letzten Übung führt der Architekt eine Code-Überprüfung aus und korrigiert eines der Untersuchungsergebnisse.
Übung
In dieser Übung führen Sie die folgenden Aufgaben aus:
- Eine Code-Überprüfung für die Suche nach zyklischen Abhängigkeiten ausführen.
- Erkennen, ob eine zyklische Abhängigkeit eine mitgelieferte Schnellkorrektur besitzt.
- Eine Schnellkorrektur anwenden, um eine zyklische Abhängigkeit aufzulösen.
- Eine Liste von durchzuführenden Änderungen anzeigen.
- Den vorhandenen und refaktorierten Code für jede Änderung anzeigen.
- Eine Bestätigung erhalten, wenn die Schnellkorrektur angewendet wurde.
Eine Code-Überprüfung für die Prüfung nach zyklischen Abhängigkeiten auswählen
Gehen Sie wie folgt vor, um eine Code-Überprüfung auszuwählen, die nach zyklischen Abhängigkeiten prüft:
- Klicken Sie in der Symbolleiste der Sicht 'Code-Überprüfung' auf das Symbol Regeln verwalten
.

- Klicken Sie in der Liste Code-Überprüfung auswählen auf Structural Analysis-Code-Überprüfung.
- Erweitern Sie den Ordner Structural Analysis, und löschen Sie alles bis auf den Unterordner Cyclic Dependency.
- Erweitern Sie den Unterordner Cyclic Dependency, um die Regeln anzuzeigen, die in der Code-Überprüfung Anwendung finden, wie in der folgenden Anzeigenerfassung dargestellt. Klicken Sie auf OK.

Eine Codebasis für die Überprüfung auswählen
Gehen Sie wie folgt vor, um den Arbeitsbereich als Codebasis für die Überprüfung auszuwählen:
- Klicken Sie in der Symbolleiste der Sicht 'Code-Überprüfung' auf das Symbol Review (
) > Review Workspace.
Code-Überprüfung ausführen
Wenn Sie die Codebasis für die Überprüfung ausgewählt haben, wird die Code-Überprüfung ausgeführt.
Sie können ihren Status überwachen, indem Sie die Statusleiste unten rechts in der Anzeige prüfen.
Liste der gefundenen zyklischen Abhängigkeiten anzeigen
Die Code-Überprüfung hat vier zyklische Abhängigkeiten gefunden, wie in der folgenden Anzeigenerfassung dargestellt. Eine zyklische Abhängigkeit ist ein unerwünschtes Antimuster, das vermieden werden sollte.
In einer zyklischen Abhängigkeit ist eine Gruppe von Objekten so miteinander verbunden, dass eine Änderung an
einem Objekt alle anderen Objekte betreffen kann.

- Erweitern Sie den Ordner Structural Analysis: Cyclic Dependency, und beachten Sie die folgenden
Untersuchungsergebnisse darin, wie in der folgenden Anzeigenerfassung dargestellt:

- Jeder zyklischen Abhängigkeit ist die höchste Problemwertigkeitsstufe
(
) zugeordnet.
- Für zwei der zyklischen Abhängigkeiten ist eine Schnellkorrektur vorhanden (
), um die Abhängigkeit zu beheben.
- Klicken Sie mit der rechten Maustaste auf das dritte Untersuchungsergebnis in der Liste. Die Auswahlmöglichkeit im Popup-Menü Quick Fix
variiert je nach der Lösung. Für die von Ihnen ausgewählte zyklische Abhängigkeit besteht die Korrektur darin,
das statische Feld von der Basisklasse in eine andere Klasse zu versetzen. Hierdurch wird die zyklische
Abhängigkeit behoben.
- Klicken Sie auf Quick Fix: Move static field from base class.

Schnellkorrektur anwenden
Die Schnellkorrektur für die von Ihnen ausgewählte zyklische Abhängigkeit besteht darin, das statische Feld
aus der Basisklasse in eine andere Klasse zu versetzen. Sie können das Feld in eine vorhandene oder eine neue Klasse versetzen.
Gehen Sie wie folgt vor, um das Feld in eine neue Klasse zu versetzen:
- Prüfen Sie in der nächsten Anzeigenerfassung die schreibgeschützten Informationen über die zyklische
Abhängigkeit (auch Tangle bezeichnet), die Sie korrigieren werden:
- Klassen, die Teil des Tangles sind
- Abhängigkeiten zwischen Klassen im Tangle
- Klicken Sie auf Neue Java-Klasse generieren und geben Sie Folgendes ein:
- src/ für den Quellenordnernamen
- com.ibm.r2a.rules.rsa.examples für den Paketnamen
- Standard für den Klassennamen

- Klicken Sie auf Voranzeige, um den Code anzuzeigen, den die Schnellkorrektur ändern wird.
- Erweitern Sie die Liste Durchzuführende Änderungen, wie in der folgenden Anzeigenerfassung dargestellt.
Sie sehen deutlich, welche Änderungen die Schnellkorrektur am Code vornimmt, wenn das statisches Feld in die neue Klasse versetzt wird.

- Klicken Sie auf die vierte Änderung in der Liste, die mit Font.java beginnt, um eine nebeneinander stehende Sicht des Codes anzuzeigen.
Der ursprüngliche Code ist auf der linken Seite und der refaktorierte Code, der von der Schnellkorrektur erstellt wird, ist auf der rechten Seite.

- Klicken Sie auf OK, um die Schnellkorrektur für alle ausgewählten Änderungen in der Liste anzuwenden.
- Nachdem die Schnellkorrektur angewendet wurde, sehen Sie einen Haken als Bestätigung. So wissen Sie,
dass das Problem aufgelöst wurde.

Sie haben 'Übung 1.4: Ein strukturelles Problem auflösen' abgeschlossen.
Das Potenzial von Schnellkorrekturen nutzen
Schnellkorrekturen werden für einige allgemeine Untersuchungsergebnis in Code-Überprüfungen mitgeliefert. Durch die Anwendung einer mitgelieferten Schnellkorrektur verfügen Sie über eine automatisierte Möglichkeit, eine zyklische Abhängigkeit aufzulösen. Sie können Folgendes:
- Zyklische Abhängigkeiten kennzeichnen und bewerten.
- Die Abhängigkeit schnell mit einer automatisierten Schnellkorrektur beheben.
- Eine Liste mit den genauen Änderungen anzeigen, die die Schnellkorrektur an Ihrem Code vornehmen würde.
- Die zyklische Abhängigkeit durchgängig jedes Mal korrigieren.
Zusammenfassung Übung 1.4
Sie haben 'Übung 1.4: Ein strukturelles Problem auflösen' abgeschlossen. In dieser Übung haben Sie die folgenden Aufgaben ausgeführt:
- Sie haben eine Code-Überprüfung ausgeführt, um zyklische Abhängigkeiten zu suchen.
- Sie haben erkannt, ob eine zyklische Abhängigkeit eine mitgelieferte Schnellkorrektur besitzt.
- Sie haben eine Schnellkorrektur angewendet, um eine zyklische Abhängigkeit aufzulösen.
- Sie haben eine Liste von durchzuführenden Änderungen angezeigt.
- Sie haben den vorhandenen und refaktorierten Code für jede Änderung angezeigt.
- Sie haben eine Bestätigung erhalten, wenn die Schnellkorrektur angewendet wurde.
Beenden Sie dieses Lernprogramm, indem Sie die Lernziele in der Zusammenfassung prüfen.