Gewusst wie: Untersuchen von Code mit Abhängigkeitsdiagrammen

Mithilfe von Abhängigkeitsdiagrammen können Sie sich in Visual Studio Ultimate eingehender mit der Organisation und den Beziehungen in vorhandenem Code vertraut machen. In diesen Diagrammen werden Strukturen als Knoten und Beziehungen als Links dargestellt, die als Pfeile zwischen Knoten angezeigt werden. Informationen zum Generieren eines Diagramms finden Sie unter Gewusst wie: Generieren von Abhängigkeitsdiagrammen für .NET-Code.

Im folgenden Beispiel wird die Darstellung von Strukturen und Beziehungen in einem Diagramm als Knoten bzw. Links veranschaulicht:

Abhängigkeitsdiagramm mit Knoten und Links

Knoten und Links in einem Diagramm

Im folgenden Beispiel wird gezeigt, wie Strukturen und Kapselungsbeziehungen im Diagramm als Gruppen dargestellt werden:

Abhängigkeitsdiagramm mit gruppierten Knoten

Gruppierte Knoten in einem Diagramm

Warnung

In einem Diagramm werden nur Abhängigkeiten für Code angezeigt, der erfolgreich erstellt wird. Komponenten und ihr Inhalt werden nicht angezeigt, wenn für diese Komponenten Buildfehler auftreten. Vergewissern Sie sich deshalb stets, dass eine Komponente tatsächlich erstellt wird und Abhängigkeiten besitzt, bevor Sie auf Grundlage des Diagramms architekturbezogene Entscheidungen treffen.

In diesem Thema

  • Untersuchen von Abhängigkeiten im Diagramm

  • Suchen von komplexen Bereichen

Untersuchen von Abhängigkeiten im Diagramm

Abhängigkeiten werden im Diagramm durch die folgenden Arten von Links dargestellt:

  • Ein einzelner Link stellt eine einzelne Abhängigkeit zwischen zwei Knoten dar.

  • Ein Aggregatlink stellt alle gleichgerichteten Abhängigkeiten zwischen zwei Gruppen dar.

Bei einem gruppenübergreifenden Link handelt es sich lediglich um einen Link zwischen zwei Knoten, der sich über verschiedene Gruppen erstreckt.

Tipp

Gruppenübergreifende Links werden im Diagramm standardmäßig nur für ausgewählte Knoten angezeigt. Sollen diese Links dauerhaft angezeigt werden, klicken Sie auf der Diagrammsymbolleiste auf die Dropdownliste neben Ändern, wie gruppenübergreifende Links im Diagramm gerendert werden und anschließend auf Alle gruppenübergreifenden Links anzeigen. Wird die Diagrammsymbolleiste nicht angezeigt, zeigen Sie im Menü Ansicht auf Symbolleisten, und klicken Sie auf Gerichtetes Diagramm.

Verwenden Sie die folgenden Aufgaben, um die für Sie interessanten Abhängigkeiten zu untersuchen:

Zweck

Schritte

Anzeigen einer Liste mit Abhängigkeiten, die von einem Link dargestellt werden

  • Bewegen Sie den Mauszeiger auf den Link, um eine QuickInfo mit den Abhängigkeiten anzuzeigen.

Suchen eines Knotens anhand des Namens

Dient zum Durchsuchen mehrerer Ebenen gruppierter Knoten.

  • Drücken Sie STRG+F.

Suchen der Quelle oder des Ziels eines Links

Verwenden Sie diese Methode, wenn die Quelle oder das Ziel eines bestimmten Links aufgrund einer großen Anzahl von Links nicht problemlos ersichtlich ist.

  1. Ändern Sie auf der Diagrammsymbolleiste das Diagrammlayout zu Strukturlayout oder Clusterschnelllayout.

    HinweisHinweis
    Wird die Diagrammsymbolleiste nicht angezeigt, zeigen Sie im Menü Ansicht auf Symbolleisten, und klicken Sie auf Gerichtetes Diagramm.

    Weitere Informationen finden Sie unter Gewusst wie: Durchsuchen von und Navigieren in Diagrammdokumenten.

  2. Bewegen Sie den Mauszeiger auf den Link.

    Von Visual Studio werden über dem Link zwei Pfeilschaltflächen angezeigt. Zudem wird von Visual Studio eine QuickInfo mit Quelle und Ziel des Links angezeigt.

  3. Klicken Sie auf die Pfeilschaltfläche, die in die gewünschte Richtung zeigt.

    Abhängig von der ausgewählten Richtung wird entweder die Quelle oder das Ziel markiert.

Knotenübergreifendes Untersuchen der Abhängigkeiten in unterschiedlichen Gruppen

  1. Erweitern Sie die für Sie interessanten Gruppen, sodass alle untergeordneten Elemente angezeigt werden.

  2. Wählen Sie alle für Sie interessanten Knoten aus – einschließlich der untergeordneten Elemente.

    Halten Sie zum Auswählen aller Knoten in einer Gruppe die linke Maustaste gedrückt, und ziehen Sie einen Rahmen um die gewünschte Gruppe. Drücken Sie STRG+A, um alle Knoten in einem Diagramm auszuwählen.

    Im Diagramm werden die gruppenübergreifenden Links zwischen den ausgewählten Knoten angezeigt.

    HinweisHinweis
    Sollen gruppenübergreifende Links dauerhaft angezeigt werden, klicken Sie auf der Diagrammsymbolleiste auf die Dropdownliste neben Ändern, wie gruppenübergreifende Links im Diagramm gerendert werden und anschließend auf Alle gruppenübergreifenden Links anzeigen.Wird die Diagrammsymbolleiste nicht angezeigt, zeigen Sie im Menü Ansicht auf Symbolleisten, und klicken Sie auf Gerichtetes Diagramm.

Untersuchen der Abhängigkeiten hinter einem Aggregatlink

HinweisHinweis
Dies funktioniert nur, wenn jedes Ende des Links mit einer Assembly verbunden ist.Sind keine Assemblyinformationen vorhanden, kann kein Diagramm erstellt werden.
  1. Ändern Sie auf der Diagrammsymbolleiste das Diagrammlayout zu Strukturlayout oder Clusterschnelllayout.

    HinweisHinweis
    Wird die Diagrammsymbolleiste nicht angezeigt, zeigen Sie im Menü Ansicht auf Symbolleisten, und klicken Sie auf Gerichtetes Diagramm.Weitere Informationen finden Sie unter Gewusst wie: Durchsuchen von und Navigieren in Diagrammdokumenten.
  2. Doppelklicken Sie auf den für Sie interessanten Aggregatlink.

    - oder -

    1. Bewegen Sie den Mauszeiger auf den Link.

      Von Visual Studio werden über dem Link zwei Pfeilschaltflächen angezeigt.

    2. Klicken Sie auf das Pluszeichen (+) zwischen den beiden Pfeilschaltflächen.

  3. Klicken Sie im Dialogfeld Abhängigkeitsdiagramm generieren auf die Knotenebenen, die Sie in das Diagramm einbeziehen möchten.

    Beispiel: Klicken Sie zum Untersuchen der Abhängigkeiten zwischen der Assemblyebene und der Methodenebene auf Assemblys, Namespaces, Typen und Methoden. Wenn Sie sich lediglich für die Abhängigkeiten zwischen Assemblys und Klassen interessieren, klicken Sie nur auf Assemblys und Klassen.

    Wenn Sie den Inhalt einer Methode im Diagramm einbeziehen möchten, suchen Sie mithilfe des Architektur-Explorers nach den entsprechenden Elementen, und fügen Sie sie dem Diagramm hinzu. Weitere Informationen finden Sie unter Gewusst wie: Suchen von Code im Architektur-Explorer.

  4. Stellen Sie sicher, dass Kapselung als Gruppe anzeigen aktiviert ist, und klicken Sie anschließend auf OK.

    Von Visual Studio wird ein Diagramm mit den ausgewählten Knotenebenen und deren Abhängigkeiten generiert und angezeigt.

  5. Wählen Sie im Diagramm die für Sie interessanten Gruppen aus, klicken Sie mit der rechten Maustaste auf eine ausgewählte Gruppe, zeigen Sie auf Gruppe, und klicken Sie anschließend auf Erweitern.

    - oder -

    Klicken Sie mit der rechten Maustaste auf das Diagramm, zeigen Sie auf Gruppe, und klicken Sie anschließend auf Alle erweitern.

    Die Gruppen im Diagramm werden erweitert, sodass ihre untergeordneten Elemente angezeigt werden.

  6. Wählen Sie alle für Sie interessanten Knoten aus – einschließlich der untergeordneten Elemente.

    Halten Sie zum Auswählen aller Knoten in einer Gruppe die linke Maustaste gedrückt, und ziehen Sie einen Rahmen um die gewünschte Gruppe. Drücken Sie STRG+A, um alle Knoten in einem Diagramm auszuwählen.

    Im Diagramm werden die gruppenübergreifenden Links zwischen den ausgewählten Knoten angezeigt.

Suchen von komplexen Bereichen

Mithilfe eines Abhängigkeitsdiagramms können Sie Codebereiche mit möglichem Optimierungsbedarf ermitteln. Ein wohlgeformtes Abhängigkeitsdiagramm enthält nur eine sehr geringe Anzahl von Abhängigkeiten. Sie haben unter anderem folgende Möglichkeiten:

  • Suchen von Code mit Schleifen oder Ringabhängigkeiten

    Untersuchen Sie diese Bereiche, um zu prüfen, ob Sie sie vereinfachen können. Überlegen Sie, ob sich diese Ringabhängigkeiten auflösen lassen.

  • Suchen von Code mit zu vielen Abhängigkeiten

    Untersuchen Sie diese Bereiche, um zu prüfen, ob zu viele Funktionen ausgeführt werden, oder um die Auswirkungen zu ermitteln, die sich durch eine Änderung dieser Bereiche ergeben. Überlegen Sie, ob sich diese Bereiche klarer definieren lassen oder ob Code, von dem ähnliche Funktionen ausgeführt werden, zusammengeführt werden kann, um das Verwalten, Ändern, Testen und Wiederverwenden von Code zu vereinfachen.

  • Suchen von Code ohne Abhängigkeiten

    Untersuchen Sie diese Bereiche, um zu prüfen, ob sie benötigt werden oder ob der Code entfernt werden kann.

In den Diagrammen können bestimmte Analyzer ausgeführt werden, um Sie bei diesen Aufgaben unterstützen. Analyzer werden nach dem Anwenden weiter ausgeführt. Bei einer Änderung des Diagramms wird das aktualisierte Diagramm automatisch von allen angewendeten Analyzern neu verarbeitet. Klicken Sie zum Beenden eines Analyzers im Feld Legende mit der rechten Maustaste auf den Analyzer, und klicken Sie anschließend auf Löschen.

Tipp

Bei einem sehr großen Diagramm könnte das Ausführen eines Analyzers eine Ausnahme bezüglich nicht ausreichendem Arbeitsspeicher verursachen. Wenn dies auftritt, bearbeiten Sie das Diagramm, um den Umfang zu reduzieren oder ein kleineres Diagramm zu generieren, und führen Sie dann den Analyzer aus.

So suchen Sie komplexe Bereiche im Code

  1. Stellen Sie sicher, dass das Diagrammlayout auf Strukturlayout oder Clusterschnelllayout festgelegt ist.

    Weitere Informationen finden Sie unter Gewusst wie: Durchsuchen von und Navigieren in Diagrammdokumenten.

  2. Klicken Sie mit der rechten Maustaste auf das Diagramm, zeigen Sie auf Analyzer, und klicken Sie anschließend auf eine der folgenden Optionen:

    Analyzer

    Zu identifizierende Knoten

    Zirkelverweis

    Knoten mit gegenseitigen Ringabhängigkeiten

    HinweisHinweis
    Ringabhängigkeiten in der Gruppe Generika werden beim Erweitern der Gruppe nicht im Diagramm angezeigt.

    Suchen von Hubs

    Knoten in den obersten 25 Prozent der Knoten mit hoher Verbindungsanzahl

    So wählen Sie diese Knoten im Diagramm aus und blenden alle anderen aus

    1. Klicken Sie mit der rechten Maustaste auf das Diagramm, und klicken Sie anschließend auf Erweiterte Auswahl anzeigen.

    2. Erweitern Sie im Feld Auswahl zunächst Eigenschaften und anschließend Hub.

    3. Klicken Sie unter Hub auf True.

      Die obersten 25 Prozent der Knoten mit hoher Verbindungsanzahl werden ausgewählt.

    4. Klicken Sie mit der rechten Maustaste auf das Diagramm, zeigen Sie auf Auswahl, und klicken Sie anschließend auf Nicht markierte ausblenden.

      Die nicht ausgewählten Knoten werden ausgeblendet, und neue Knoten werden als Hubs identifiziert.

    Sie können auch Bereiche mit hoher Abhängigkeitsdichte identifizieren, indem Sie beim Diagrammlayout zur Abhängigkeitsmatrixansicht wechseln. Weitere Informationen zur Abhängigkeitsmatrixansicht finden Sie unter Gewusst wie: Durchsuchen von und Navigieren in Diagrammdokumenten.

    Nicht referenzierte Knoten

    Besitzen keine Verweise aus anderen Knoten.

    WarnhinweisVorsicht
    Überprüfen Sie jeden dieser Fälle, bevor Sie davon ausgehen, dass der Code nicht verwendet wird.Bestimmte Abhängigkeiten wie XAML- und Laufzeitabhängigkeiten können im Code nicht statisch gefunden werden.

Siehe auch

Konzepte

Gewusst wie: Generieren von Abhängigkeitsdiagrammen für .NET-Code

Weitere Ressourcen

Gewusst wie: Durchsuchen von und Navigieren in Diagrammdokumenten

Gewusst wie: Bearbeiten und Anpassen von Diagrammdokumenten