STfA
tooling

Dependency Graph Analysis

Die Kartografie der architektonischen Minenfelder. Tools, die maschinell beweisen, dass die einfache Änderung in "Frontend B" wundersamerweise das "Backend Z" in die Luft jagen wird.

technologyorganization·3 min Lesezeit

Was ist das?

Die Kartografie der architektonischen Minenfelder. Tools, die maschinell beweisen, dass die einfache Änderung in "Frontend B" wundersamerweise das "Backend Z" in die Luft jagen wird.

Warum relevant?

Werkzeuge sind Hilfsmittel, damit Systemdenken in Analyse, Kommunikation und Umsetzung praktikabel wird.

Nächster Schritt

Kombiniere das Werkzeug immer mit einer Diagnose- oder Interventionslogik, statt es isoliert einzusetzen.

~3 min Lesezeit
Hero Bild für Dependency Graph Analysis

Systemzweck

Sobald eine Firma die "Monolithische" Phase verlässt und in verteilte Systeme ("Microservices") wechselt, verliert das menschliche Auge die Fähigkeit, Kopplung (Tight Coupling) auf einen Blick zu erkennen. Das System verhält sich chaotisch: Ein Team aktualisiert eine unbedeutende LogHelper Bibliothek, und plötzlich crashen 40 andere Microservices, von denen niemand wusste, dass sie diese Bibliothek nutzen. *Dependency Graph Analysis* (Z.B. Backstage, Neo4J, oder Code-Linters wie SonarQube) ist die maschinelle Rettung aus dieser Blindheit. Es scannt Code oder Netzwerk-Calls und generiert das unbestechliche, physikalische Netz der Abhängigkeiten.

Mechanik des Werkzeugs

Dependency Tools agieren mikroskopisch (Im Code) und makroskopisch (In der Cloud-Architektur):

1.Static Analysis (Im Code): Tools lesen package.json oder pom.xml in allen Repositories und bauen Graphen: Wer nutzt welche Version von React? Sie verhindern "Dependency Hell" Viren (Sicherheitslücken in Dritt-Software).

2.Service Catalogs (Makro): Developer Portals (wie Spotify's *Backstage.io*) registrieren jeden Microservice im System. Devs können abfragen: "Zeige mir den Graph aller Teams und Datenbanken, die diesen Payment-Service als Upstream benötigen." Die Maschine zeigt die Explosions-Reichweite deiner geplanten Änderung.

Architektur-Einsatz

Diese Tools sind essenziell, um das *Structural Coupling Adjustment* auszuführen. Bevor du zwei Teams trennen kannst (Conways Law), musst du beweisen, wo sie bluten. Du wirfst den Code in ein Dependency-Analyse-Werkzeug und suchst den "Big Ball of Mud" (Den gordischen Knoten) – dort wo hunderte rote Linien aus allen System-Ecken in eine einzige zentrale "Utils.js" Datei laufen. Dieser Knoten ist der kybernetische Engpass (Bottleneck) deiner gesamten Firma.

Grenzen und Gefahren

"Das Trügerische Bild statischer Graphen". Wenn du Abhängigkeiten nur durch das Scannen von Source-Code misst (Compile-Time Dependency), bist du für die gefährlichste Form der Kopplung blind: *Die Runtime-Dependency* (Abhängigkeit zur Laufzeit). Team A redet nicht im Code mit Team B, aber Team A schreibt nachts heimlich Daten in einen S3-Bucket, den Team B am nächsten Morgen einliest. Wenn Team A das Dateiformat ändert, stirbt Team B in der Produktion, obwohl der Static-Code-Graph grün anzeigte. Um echte Wahrheit zu finden, müssen Dependency Tools mit *Observability Tooling* gekreuzt werden.

Diagramm

Systemdiagramm für Dependency Graph Analysis
Diagramm: Dependency Graph Analysis

Abgrenzung

*Causal Loop Tools* zeichnen das menschlich erdachte Modell der System-Probleme. *Architecture Observability* protokolliert die aktiven Signale von lebenden Servern. *Dependency Graph Analysis* scannt das Skelett ("Wer ruft wen auf, wer inkludiert wen?") der existierenden Architektur, völlig wertneutral und gnadenlos objektiv.

Entscheidungs- und Praxisleitfaden

Zerstöre den Zwang zur "Cyclic Dependency" (Zyklische Abhängigkeit - A braucht B, und B braucht A). Konfiguriere deine Build-Pipelines so (z.B. mit ArchUnit in Java or Madge in JS), dass sie einen System-Stop (Build Failed) ausführen, sobald ein Entwickler auch nur andeutungsweise eine Kreis-Abhängigkeit in den Code programmiert. Die Verhinderung von strukturellen Zyklopen rettet die Autonomie der Teams.

Quellen

Sam Newman — Building Microservices, Kap. 3: Coupling (O'Reilly, 2021)

Backstage — Software Catalog & System Model

Wikipedia: Dependency Graph

Authors & Books

Zur Referenzseite

Passende Referenzen zum Thema Dependency Graph Analysis.