Erstellen von Abhängigkeitsdiagrammen aus dem Code

Um die allgemeine logische Architektur des Softwaresystems visuell darzustellen, erstellen Sie ein Abhängigkeitsdiagramm in Visual Studio. Um sicherzustellen, dass Ihr Code und dieser Entwurf konsistent bleiben, validieren Sie den Code mit einem Abhängigkeitsdiagramm. Sie können Abhängigkeitsdiagramme für Visual C#- und Visual Basic-Projekte erstellen. Welche Visual Studio-Editionen dieses Feature unterstützen, erfahren Sie unter Edition-Unterstützung für Architektur- und Modellierungstools.

Erstellen eines Abhängigkeitsdiagramms

Im Abhängigkeitsdiagramm können Sie Visual Studio-Projektmappenelemente in logischen, abstrakten Gruppen organisieren, die als Ebenen bezeichnet werden. Sie können die Ebenen zum Beschreiben der Hauptaufgaben, die von diesen Artefakten ausgeführt werden, oder zum Beschreiben der Hauptkomponenten des Systems verwenden.

Jede Ebene kann andere Ebenen enthalten, die ausführlichere Aufgaben beschreiben. Sie können auch die vorgesehenen oder vorhandenen Abhängigkeiten zwischen Ebenen angeben. Diese Abhängigkeiten, dargestellt als Pfeile, zeigen die Ebenen, die die von anderen Ebenen dargestellten Funktionen nutzen oder nutzen können. Geben Sie die beabsichtigten Abhängigkeiten im Diagramm an, um die Architektursteuerung für den Code beizubehalten, und überprüfen Sie anschließend den Code anhand des Diagramms.

Video: Überprüfen der Architekturabhängigkeiten in Echtzeit

Erstellen eines Abhängigkeitsdiagramms

Bevor Sie ein Abhängigkeitsdiagramm erstellen, stellen Sie sicher, dass die Projektmappe ein Modellierungsprojekt enthält.

Wichtig

Fügen Sie kein vorhandenes Abhängigkeitsdiagramm hinzu, ziehen Sie es nicht, und kopieren Sie es nicht aus einem Modellierungsprojekt in ein anderes Modellierungsprojekt oder an einen anderen Speicherort in der Projektmappe. Dadurch werden die Verweise des ursprünglichen Diagramms beibehalten, auch wenn Sie das Diagramm ändern. Dies verhindert auch das ordnungsgemäße Funktionieren der Ebenenvalidierung und verursacht möglicherweise andere Probleme, z. B. fehlende Elemente oder andere Fehler beim Versuch, das Diagramm zu öffnen.

Fügen Sie stattdessen dem Modellierungsprojekt ein neues Abhängigkeitsdiagramm hinzu. Kopieren Sie die Elemente aus dem Quelldiagramm in das neue Diagramm. Speichern Sie das Modellierungsprojekt und das neue Abhängigkeitsdiagramm.

Hinzufügen eines neuen Abhängigkeitsdiagramms zu einem Modellierungsprojekt

Hinweis

Abhängigkeitsdiagramme für .NET Core-Projekte werden ab Visual Studio 2019, Version 16.2 unterstützt.

  1. Wählen Sie im Menü Architektur die Option Neues Abhängigkeitsdiagramm aus.

  2. Wählen Sie unter Vorlagen die Option Abhängigkeitsdiagramm aus.

  3. Benennen Sie das Diagramm.

  4. Navigieren Sie unter Zu Modellierungsprojekt hinzufügen zu einem in der Lösung vorhandenen Modellierungsprojekt, und wählen Sie es aus.

    Oder

    Wählen Sie Neues Modellierungsprojekt erstellen aus, um der Projektmappe ein neues Modellierungsprojekt hinzuzufügen.

    Hinweis

    Das Abhängigkeitsdiagramm muss in einem Modellierungsprojekt vorhanden sein. Sie können es allerdings mit Elementen an einer beliebigen Stelle in der Projektmappe verknüpfen.

  5. Vergewissern Sie sich, dass Sie das Modellierungsprojekt und das Abhängigkeitsdiagramm gespeichert haben.

Ziehen und Ablegen oder Kopieren und Einfügen aus einer Code Map

  1. Generieren Sie über das Menü Architektur eine Code Map für die Projektmappe.

  2. Erwägen Sie das Anwenden eines Code Map-Filters, um Projektmappenordner und „Testressourcen“ zu entfernen, wenn Sie nur Abhängigkeiten im Produktcode erzwingen möchten.

  3. Entfernen Sie in der generierten Code Map den Knoten „Extern“, oder erweitern Sie ihn abhängig davon, ob Sie Namespaceabhängigkeiten erzwingen möchten, um externe Assemblys anzuzeigen. Löschen Sie nicht erforderliche Assemblys aus der Code Map.

  4. Erstellen Sie über das Menü Architektur ein neues Abhängigkeitsdiagramm für die Projektmappe.

  5. Wählen Sie alle Knoten in der Code Map aus (drücken Sie STRG + A, oder verwenden Sie die Gummibandauswahl, indem Sie die UMSCHALTTASTE drücken, bevor Sie klicken, ziehen und loslassen).

  6. Ziehen Sie die ausgewählten Elemente in das neue Abhängigkeitsvalidierungsdiagramm, oder kopieren Sie sie, und fügen Sie sie ein.

  7. Dies zeigt die aktuelle App-Architektur. Entscheiden Sie, wie die Architektur aussehen soll, und ändern Sie das Abhängigkeitsdiagramm entsprechend.

Abhängigkeitsdiagramm, das aus einer Code Map generiert wurde

Ebenen aus Artefakten erstellen

Ebenen können aus Visual Studio-Projektmappenelementen erstellt werden, z. B. Projekte, Codedateien, Namespaces, Klassen und Methoden. Dabei werden Verknüpfungen zwischen den Ebenen und den Elementen automatisch erstellt und im Ebenenvalidierungsprozess berücksichtigt.

Sie können Ebenen mit Elementen verknüpfen, die keine Überprüfung unterstützen, z. B. Word-Dokumente oder PowerPoint-Präsentationen. Auf diese Weise können Sie eine Ebene Spezifikationen oder Plänen zuordnen. Außerdem können Sie Ebenen mit Dateien in Projekten verknüpfen, die für mehrere Apps freigegeben sind. Im Validierungsprozess werden diese Ebenen, die mit generischen Namen wie "Layer 1" und "Layer 2" angezeigt werden, jedoch nicht berücksichtigt.

Öffnen Sie den Ebenen-Explorer, um zu überprüfen, ob ein verknüpftes Element die Validierung unterstützt. Überprüfen Sie dann die Eigenschaft Unterstützt Validierung des Elements. Weitere Informationen hierzu finden Sie unter Verwalten von Verknüpfungen mit Artefakten.

An Führen Sie diese Schritte aus.
Erstellen einer Ebene für ein einzelnes Artefakt
  1. Ziehen Sie das Element aus diesen Quellen in das Abhängigkeitsdiagramm:
    Im Diagramm wird eine Ebene angezeigt und mit dem Artefakt verknüpft.
  2. Ändern Sie den Namen der Ebene, um die Aufgaben des zugeordneten Codes oder der Artefakte widerzuspiegeln.

Wichtig: Durch Ziehen der Binärdateien in das Abhängigkeitsdiagramm werden dem Modellierungsprojekt nicht automatisch deren Verweise hinzufügt. Fügen Sie die Binärdateien manuell hinzu, die Sie für das Modellierungsprojekt überprüfen möchten. So fügen Sie dem Modellierungsprojekt Binärdateien hinzu
  1. Öffnen Sie im Projektmappen-Explorer das Kontextmenü für das Modellierungsprojekt, und wählen Sie dann Vorhandenes Element hinzufügen aus.
  2. Suchen Sie im Dialogfeld Vorhandenes Element hinzufügen die Binärdateien, wählen Sie sie aus, und klicken Sie dann auf OK. Die Binärdateien werden im Modellierungsprojekt angezeigt.
  3. Wählen Sie im Projektmappen-Explorer eine Binärdatei aus, die Sie hinzugefügt haben, und drücken Sie dann F4, um das Fenster Eigenschaften zu öffnen.
  4. Legen Sie für jeder Binärdatei die Eigenschaft Buildvorgang auf Überprüfen fest.
Erstellen einer einzelnen Ebene für alle ausgewählten Artefakte Ziehen Sie alle Artefakte gleichzeitig in das Abhängigkeitsdiagramm.

Im Diagramm wird eine Ebene angezeigt und mit allen Artefakten verknüpft.
Erstellen einer Ebene für jedes ausgewählte Artefakt Halten Sie die UMSCHALTTASTE gedrückt, während Sie alle Artefakte gleichzeitig in das Abhängigkeitsdiagramm ziehen.
Hinweis: Wenn Sie mithilfe der UMSCHALTTASTE einen Bereich von Elementen auswählen, lassen Sie die Taste nach dem Auswählen der Artefakte los. Halten Sie sie anschließend erneut gedrückt, wenn Sie die Artefakte in das Diagramm ziehen.

Im Diagramm wird für jedes Artefakt eine Ebene angezeigt und mit den einzelnen Artefakten verknüpft.
Hinzufügen eines Artefakts zu einer Ebene Ziehen Sie das Artefakt auf die Ebene.
Erstellen einer neuen, nicht verknüpften Ebene Erweitern Sie in der Toolbox den Abschnitt Abhängigkeitsdiagramm, und ziehen Sie anschließend eine Ebene in das Abhängigkeitsdiagramm.

Doppelklicken Sie zum Erstellen mehrerer Ebenen auf das Tool. Wählen Sie abschließend das Tool Zeiger aus, oder drücken Sie die ESC-TASTE.

- oder -

Öffnen Sie das Kontextmenü für das Abhängigkeitsdiagramm, und wählen Sie Hinzufügen und dann Ebene aus.
Erstellen geschachtelter Ebenen Ziehen Sie eine vorhandene Ebene auf eine andere Ebene.

- oder -

Öffnen Sie das Kontextmenü für eine Ebene, und wählen Sie Hinzufügen und dann Ebene aus.
Erstellen einer neuen Ebene, die mehrere vorhandene Ebenen enthält Wählen Sie die Ebenen aus, öffnen Sie das Kontextmenü für die Auswahl, und wählen Sie dann Gruppieren aus.
Ändern der Farbe einer Ebene Legen Sie die Eigenschaft Farbe auf die gewünschte Farbe fest.
Angeben, dass einer Ebene zugeordnete Artefakte nicht zu den angegebenen Namespaces gehören dürfen Geben Sie die Namespaces in die Eigenschaft Unzulässige Namespaces der Ebene ein. Trennen Sie die Namespaces durch ein Semikolon (;).
Angeben, dass einer Ebene zugeordnete Artefakte nicht von den angegebenen Namespaces abhängen dürfen Geben Sie die Namespaces in die Eigenschaft Unzulässige Namespaceabhängigkeiten der Ebene ein. Trennen Sie die Namespaces mit einem Semikolon (;).
Angeben, dass einer Ebene zugeordnete Artefakte zu einem der angegebenen Namespaces gehören müssen Geben Sie den Namespace in die Eigenschaft Erforderliche Namespaces der Ebene ein. Trennen Sie die Namespaces durch ein Semikolon (;).

Die Zahl auf einer Ebene gibt die Anzahl von Artefakten an, die mit der Ebene verknüpft sind. Beachten Sie jedoch Folgendes, wenn Sie diese Zahl lesen:

  • Wenn eine Ebene mit einem Artefakt verknüpft ist, das andere Artefakte enthält, die Ebene jedoch nicht direkt mit den anderen Artefakten verknüpft ist, umfasst die Zahl nur das verknüpfte Artefakt. Die anderen Artefakte werden jedoch während der Ebenenvalidierung für die Analyse berücksichtigt.

    Ist z. B. eine Ebene mit einem einzelnen Namespace verknüpft, ist die Anzahl der verknüpften Artefakte 1, auch wenn der Namespace Klassen enthält. Wenn die Ebene auch mit den einzelnen Klassen im Namespace verknüpft ist, umfasst die Zahl die verknüpften Klassen.

  • Wenn eine Ebene andere Ebenen enthält, die mit Artefakten verknüpft sind, ist die Containerebene ebenfalls mit diesen Artefakten verknüpft, obwohl in der Zahl auf der Containerebene diese Artefakte nicht berücksichtigt sind.

Links zwischen Ebenen und Artefakten verwalten

  1. Öffnen Sie im Abhängigkeitsdiagramm das Kontextmenü für die Ebene, und wählen Sie dann Verknüpfungen anzeigen aus.

    Im Ebenen-Explorer werden die Artefaktverknüpfungen für die ausgewählte Ebene angezeigt.

  2. Verwenden Sie zum Verwalten dieser Links die folgenden Aufgaben:

An Im Ebenen-Explorer
Löschen des Links zwischen der Ebene und einem Artefakt Öffnen Sie das Kontextmenü für den Artefaktlink, und wählen Sie dann Löschen aus.
Verschieben des Links von einer Ebene auf eine andere Ebene Ziehen Sie den Artefaktlink auf eine Ebene im Diagramm.

- oder -

1. Öffnen Sie das Kontextmenü für den Artefaktlink, und wählen Sie dann Ausschneiden aus.
2. Öffnen Sie im Abhängigkeitsdiagramm das Kontextmenü für die Ebene, und wählen Sie dann Einfügen aus.
Kopieren des Links von einer Ebene auf eine andere Ebene 1. Öffnen Sie das Kontextmenü für den Artefaktlink, und wählen Sie dann Kopieren aus.
2. Öffnen Sie im Abhängigkeitsdiagramm das Kontextmenü für die Ebene, und wählen Sie dann Einfügen aus.
Erstellen einer neuen Ebene aus einem vorhandenen Artefaktlink Ziehen Sie den Artefaktlink in einen leeren Bereich des Diagramms.
Überprüfen Sie, ob ein verknüpftes Artefakt die Validierung anhand des Abhängigkeitsdiagramms unterstützt. Suchen Sie in der Spalte Unterstützt Validierung nach der Artefaktverknüpfung.

Vorhandene Abhängigkeiten rückentwickeln

Eine Abhängigkeit ist überall dort vorhanden, wo ein Artefakt, das einer Ebene zugeordnet ist, einen Verweis auf ein Artefakt enthält, das einer anderen Ebene zugeordnet ist. Beispiel: Eine Klasse in einer Ebene deklariert eine Variable, deren Klasse sich auf einer anderen Ebene befindet. Bei vorhandenen Abhängigkeiten von Artefakten, die mit Ebenen des Diagramms verknüpft sind, ist eine Rückentwicklung möglich.

Hinweis

Bei bestimmten Arten von Artefakten ist kein Reverse Engineering der Abhängigkeiten möglich. So kann beispielsweise bei einer Ebene, die mit einer Textdatei verknüpft ist, keinerlei Rückentwicklung der Abhängigkeiten vorgenommen werden. Um die Artefakte mit Abhängigkeiten anzuzeigen, bei denen eine Rückentwicklung möglich ist, öffnen Sie das Kontextmenü für mindestens eine Ebene, und wählen Sie anschließend Verknüpfungen anzeigen aus. Überprüfen Sie im Ebenen-Explorer die Spalte Unterstützt Validierung. Bei Artefakten, die in dieser Spalte den Eintrag FALSE enthalten, ist Reverse-Engineering von Abhängigkeiten nicht möglich.

  • Wählen Sie mindestens eine Ebene aus, öffnen Sie das Kontextmenü für eine ausgewählte Ebene, und wählen Sie dann Abhängigkeiten generieren aus.

    Wenn einige Abhängigkeiten angezeigt werden, die nicht vorhanden sein sollten, können Sie diese Abhängigkeiten bearbeiten, um sie an den beabsichtigten Entwurf anzugleichen.

Ebenen und Abhängigkeiten bearbeiten, um den beabsichtigten Entwurf zu zeigen

Um die geplanten Änderungen an Ihrem System oder der vorgesehenen Architektur zu beschreiben, bearbeiten Sie das Abhängigkeitsdiagramm:

An Auszuführende Schritte
Ändern oder Einschränken der Richtung einer Abhängigkeit Legen Sie die Eigenschaft Richtung fest.
Erstellen von neuen Abhängigkeiten Verwenden Sie die Tools Abhängigkeit und Bidirektionale Abhängigkeit.

Doppelklicken Sie zum Zeichnen mehrerer Abhängigkeiten auf das Tool. Wählen Sie abschließend das Tool Zeiger aus, oder drücken Sie die ESC-TASTE.
Angeben, dass einer Ebene zugeordnete Artefakte nicht von den angegebenen Namespaces abhängen dürfen Geben Sie die Namespaces in die Eigenschaft Unzulässige Namespaceabhängigkeiten der Ebene ein. Trennen Sie die Namespaces mit einem Semikolon (;).
Angeben, dass einer Ebene zugeordnete Artefakte nicht zu den angegebenen Namespaces gehören dürfen Geben Sie die Namespaces in die Eigenschaft Unzulässige Namespaces der Ebene ein. Trennen Sie die Namespaces mit einem Semikolon (;).
Angeben, dass einer Ebene zugeordnete Artefakte zu einem der angegebenen Namespaces gehören müssen Geben Sie den Namespace in die Eigenschaft Erforderliche Namespaces der Ebene ein. Trennen Sie die Namespaces durch ein Semikolon (;).

Die Anzeige von Elementen im Diagramm ändern

Sie können die Größe, Form, Farbe und Position von Ebenen oder die Farbe von Abhängigkeiten ändern, indem Sie ihre Eigenschaften bearbeiten.

Ermitteln von Mustern und Abhängigkeiten in einer Codezuordnung

Beim Erstellen von Abhängigkeitsdiagrammen können Sie auch Code Maps erstellen. Diese Diagramme können Ihnen helfen, Muster und Abhängigkeiten zu ermitteln, während Sie den Code untersuchen. Mithilfe von Projektmappen-Explorer, Klassenansicht oder Objektkatalog können Assemblys, Namespaces und Klassen untersucht werden, die häufig den vorhandenen Ebenen entsprechen. Weitere Informationen zu Codezuordnungen finden Sie unter den folgenden Themen: