Übung 1.4: Problem in der Codestruktur beheben

Für diese Übung wird vorausgesetzt, dass Sie bereits Übung 1.1: Erforderliche Ressourcen importieren ausgeführt haben. Bei der vorliegenden Übung lesen Sie zunächst ein Benutzerszenario. Anschließend übernehmen Sie die Rolle des im Szenario beschriebenen Softwarearchitekten und verwenden das in Übung 1.1 importierte Projekt, um die Übung auszuführen.



Benutzerszenario

Zur speziellen Überprüfung von Code auf zyklische Abhängigkeiten führt der Architekt eine Structural Analysis-Codeprüfung aus, die nach solchen Abhängigkeiten sucht. Bei der Codeprüfung werden tatsächlich einige zyklische Abhängigkeiten gefunden, und der Architekt stellt fest, dass für einige davon Quick-Fixes zur Verfügung stehen. Ein Quick-Fix ist eine bereitgestellte, automatisierte Möglichkeit zur Korrektur allgemeiner Fehler. Zur Umstrukturierung (Refactoring) des Codes wendet der Architekt den betreffenden Quick-Fix auf eine zyklische Abhängigkeit an.

In der letzten Übung führt der Architekt eine Codeprüfung aus und korrigiert einen der gefundenen Fehler.



Übung

Im Verlauf dieser Übung führen Sie folgende Aufgaben aus:

  1. Ausführen einer Codeprüfung zum Suchen zyklischer Abhängigkeiten
  2. Erkennen, wenn zur Aufhebung einer zyklischen Abhängigkeit ein Quick-Fix zur Verfügung steht
  3. Anwenden eines Quick-Fixes zur Aufhebung einer zyklischen Abhängigkeit
  4. Abrufen einer Bestätigung über die Anwendung des Quick-Fixes


Codeprüfung für die Überprüfung auf zyklische Abhängigkeiten auswählen

So wählen Sie eine Codeprüfung aus, die den Code auf zyklische Abhängigkeiten überprüft:

  1. Klicken Sie in der Funktionsleiste in der Ansicht "Code Review" auf das Symbol für Regeln verwalten .
  2. Ansicht 'Code Review'

  3. Klicken Sie in der Liste für die Auswahl der Codeprüfung auf Structural Analysis Code Review.
  4. Erweitern Sie den Ordner Structural Analysis und löschen Sie alle Einträge außer dem Unterordner Cyclic Dependency.
  5. Erweitern Sie den Unterordner Cyclic Dependency, um die Regeln anzuzeigen, die bei der Codeprüfung angewendet werden (siehe folgenden Screenshot). Klicken Sie auf OK.
  6. Fenster für Vorgaben



Codebasis für die Prüfung auswählen

So wählen Sie den Arbeitsbereich als zu überprüfende Codebasis aus:

Codeprüfung ausführen

Nach Auswahl der Codebasis für die Prüfung wird die Codeprüfung ausgeführt. Sie können den Status der Prüfung anhand des Fortschrittsanzeigers in der unteren rechten Ecke der Ansicht verfolgen.



Liste der gefundenen zyklischen Abhängigkeiten anzeigen

Bei der Codeprüfung wurden vier zyklische Abhängigkeiten gefunden (siehe nächsten Screenshot). Bei einer zyklischen Abhängigkeit handelt es sich um ein unerwünschtes Anti-Pattern, das vermieden werden sollte. Bei einer zyklischen Abhängigkeit ist eine Gruppe von Objekten so miteinander verbunden, dass Änderungen an einem Objekt Auswirkungen auf alle übrigen Objekte haben können.

Bei der Codeprüfung gefundene Fehler, ein Ordner (ausgeblendet)

  1. Erweitern Sie den Ordner Structural Analysis: Cyclic Dependency und sehen Sie sich die darin befindlichen Fehler an (siehe nächsten Screenshot):
  2. Bei der Codeprüfung gefundene Fehler, ein Ordner (erweitert)

  3. Klicken Sie mit der rechten Maustaste auf den dritten aufgelisteten Fehler. Die Menüauswahl im Quick-Fix-Popup-Menü ist abhängig von der Lösung. Für die von Ihnen ausgewählte zyklische Abhängigkeit besteht die Korrektur darin, das Statistikfeld von der Basisklasse in eine andere Klasse zu verschieben und dadurch die zyklische Abhängigkeit aufzuheben.
  4. Klicken Sie auf Quick-Fix: Move static field from base class.
  5. Quick-Fix-Popup-Menü für ausgewählten Fehler



Quick-Fix anwenden

Für die von Ihnen ausgewählte zyklische Abhängigkeit besteht die Korrektur darin, das Statistikfeld von der Basisklasse in eine andere Klasse zu verschieben. Die Verschiebung kann dabei in eine bestehende oder eine neue Klasse erfolgen.

So verschieben Sie das Feld in eine neue Klasse:

  1. Lesen Sie im folgenden Screenshot die schreibgeschützten Informationen zur zyklischen Abhängigkeit, auch als Tangle bezeichnet, die Sie aufheben möchten:
  2. Klicken Sie auf Generate a new Java class und geben Sie Folgendes ein:
  3. Klasse angeben, in die Code verschoben werden soll

  4. Klicken Sie auf Preview, um den Code anzuzeigen, der durch die Korrektur geändert wird.
  5. Erweitern Sie die Liste Changes to be performed (siehe folgenden Screenshot), um genau sehen zu können, welche Änderungen durch den Quick-Fix am Code vorgenommen werden, wenn das Statistikfeld in die neue Klasse verschoben wird.
  6. Vorzunehmende Änderungen

  7. Klicken Sie auf die vierte Änderung in der Liste, die mit "Font.java" beginnt, um den ursprünglichen und den umstrukturierten Code nebeneinanderanzuzeigen. Der ursprüngliche Code wird links und der umstrukturierte Code, der durch den Quick-Fix erstellt wird, rechts angezeigt.
  8. Ursprünglicher und umstrukturierter Code für ausgewählte Änderung

  9. Klicken Sie auf OK, um den Quick-Fix auf alle ausgewählten Änderungen in der Liste anzuwenden.
  10. Nach Anwendung des Quick-Fixes erscheint ein Haken als Bestätigung für die Behebung des Problems.
  11. Codeprüfung, Haken neben behobenem Fehler

Sie haben Übung 1.4 "Problem in der Codestruktur beheben" abgeschlossen.



Vorteile von Quick-Fixes nutzen

Quick-Fixes werden für eine Reihe allgemeiner Fehler bereitgestellt, die bei Codeprüfungen gefunden werden. Durch die Anwendung von Quick-Fixes können Sie eine zyklische Abhängigkeit automatisch aufheben. Dabei können Sie folgende Aktionen durchführen:



Nachbearbeitung von Übung 1.4

Sie haben Übung 1.4 "Problem in der Codestruktur beheben" abgeschlossen. Im Verlauf dieser Übung führten Sie folgende Aufgaben aus:

  1. Ausführen einer Codeprüfung zum Suchen zyklischer Abhängigkeiten
  2. Erkennen, wenn zur Aufhebung einer zyklischen Abhängigkeit ein Quick-Fix zur Verfügung steht
  3. Anwenden eines Quick-Fixes zur Aufhebung einer zyklischen Abhängigkeit
  4. Abrufen einer Bestätigung über die Anwendung des Quick-Fixes

Zum Abschluss des Lernprogramms erhalten Sie in der Zusammenfassung nochmals eine Übersicht über die Lernziele.



Nutzungsbedingungen | Feedback
(C) Copyright IBM Corporation 2000, 2004. Alle Rechte vorbehalten.