1. EinfĂŒhrung in Datenflussdiagramme (DFD)
Ein Datenflussdiagramm (DFD) ist eine grafische Darstellung davon, wie Daten flieĂen durch ein System â und zeigen, wo Daten entstehen, wie sie transformiert werden, wo sie gespeichert sind und wohin sie letztendlich gelangen. Im Gegensatz zu Flussdiagrammen (die sich auf Steuerfluss und Abfolgen konzentrieren), DFDs betonen Datenbewegung und -transformation ohne sich um Zeitpunkte oder die AusfĂŒhrungsreihenfolge kĂŒmmern zu mĂŒssen.

Warum DFDs verwenden DFDs?
- Ein bestehendes System analysieren oder Ein bestehendes System analysieren oder ein neues System entwerfenein neues System entwerfen
- Daten-Eingaben, -Ausgaben und -Speicher frĂŒhzeitig identifizieren
- Systemgrenzen und Datenanforderungen gegenĂŒber den Beteiligten kommunizieren
- KomplexitĂ€t von einer Ăbersichtsperspektive bis hin zu Implementierungsdetails zerlegen
2. Die vier Kernkomponenten eines DFD
Jedes DFD, auf jeder Ebene, besteht aus nur vier grundlegenden Elementen (Gane-Sarson-Notation):
| Komponente | Notation | Rolle | Beispiel |
|---|---|---|---|
| Externe EntitĂ€t | Rechteck | Quelle oder Ziel von Daten auĂerhalb der Systemgrenze | Kunde, Zahlungs-Gateway |
| Prozess | Kreis | Transformiert eingehende Daten in ausgehende Daten | âBestellung aufgebenâ, âZahlung autorisierenâ |
| Datenspeicher | Aufzeichnung / offenes Rechteck | Ein Ort, an dem Daten fĂŒr die spĂ€tere Verwendung gespeichert werden | Bestellungen, Produktbestand |
| Datenfluss | Pfeil (beschriftet) | Die Bewegung von Daten zwischen den oben genannten Elementen | âBestelldetailsâ, âZahlungsstatusâ |
đĄÂ Wichtige Regel: ein Prozess muss sowohl Eingangs- als auch AusgangsflĂŒsse haben. Ein Prozess mit nur EingĂ€ngen oder nur AusgĂ€ngen ist ein Modellierungsfehler â jede Transformation erzeugt ein Ergebnis.
3. DFD-Ebenen â Die Top-Down-Pyramide
Die StĂ€rke der Top-Down-Zerlegung besteht darin, dass Sie mit Abstraktionen beginnen und hinzufĂŒgen Detail iterativ. Jede Ebene folgt einer standardisierten Nummerierungskonvention:
| Ebene | Name | Inhalt |
|---|---|---|
| Ebene 0 | Kontextdiagramm | Einzelner Prozess (das gesamte System), alle externen EntitĂ€ten und ihre FlĂŒsse â keine Datenspeicher, keine internen Details |
| Ebene 1 | System-DFD | Das System wird in Hauptprozesse (1.0, 2.0, 3.0 âŠ), interne Datenspeicher und FlĂŒsse zerlegt |
| Ebene 2 | Teil-Diagramm | Ein einzelner Prozess der Ebene 1 wird in feinere Prozesse zerlegt (2.1, 2.2, 2.3 âŠ) |
| Ebene 3 | Teil-Teil-Diagramm | Ein einzelner Prozess der Ebene 2 wird weiter zerlegt (2.2.1, 2.2.2, 2.2.3 âŠ) |
Die Nummerierung zeigt Ihnen genau, wo Sie sich in der Hierarchie befinden â 2.2.4 gehört zu 2.2, das gehört zu 2.0. Diese Baumstruktur macht groĂe Systeme ĂŒberschaubar.
4. Der Hausstil (Farblegende)
Jedes Diagramm in diesem Leitfaden folgt einer einheitlichen visuellen Konvention. In Graphviz lautet die Vorgehensweise: zuerst formatieren, dann deklarieren, dann verbinden.
| Element | Form | FĂŒllung | Rahmen | Zweck |
|---|---|---|---|---|
| Externe EntitÀt | Box |
#E1F5FE |
#0288D1 |
Wer ist auĂerhalb |
| Prozess | Kreis |
#E8F5E9 |
#388E3C |
Was transformiert Daten |
| Datenspeicher | Eintrag |
#FFF9C4 |
#FBC02D |
Wo Daten ruhen |
| Ăbergeordneter Prozess (ref) | Kreis |
#FCE4EC |
#C2185B |
Kontext auĂerhalb des aktuellen Levels |
| Systemgrenze | gestrichelt, abgerundetCluster |
#FAFAFAÂ /Â #757575 |
Grau | Grenze des aktuellen Diagramms |
| Datenfluss | Pfeil |
â | #555555 |
Bewegung von Daten |
â ïž Wichtig â eine Stilvorlage ist KEIN Diagramm
Eine Graphviz-Datei, die nur Knoten-/Kantenstile definiert, aber niemals Knoten oder Kanten deklariert wird als leere Leinwand. Eine DFD benötigt drei Bestandteile in dieser Reihenfolge:
- Stilisiere den Graphen âÂ
graph [...],Ânode [...],Âedge [...]Attribute. - Deklarieren Sie die Elemente â externe EntitĂ€ten (Boxen), Prozesse (Kreise), Datenspeicher (Aufzeichnungen), umhĂŒllt von einer gestrichelten
ClusterGrenze. - Zeichnen Sie die FlĂŒsse â explizite
A -> B [label="..."]Kanten, unter Verwendung vondir=bothfĂŒr bidirektionale Austausche.
Vergleichen Sie diese beiden â beide werden beide validiert, aber nur das zweite erzeugt ein Bild:
â Nur Stil (erzeugt nichts):
digraph DFD {
graph [rankdir = LR]
node [shape = box, style = "filled", fillcolor = "#E1F5FE"]
edge [color = "#555555", arrowsize = 0.8]
}
â Komplett (wird gerendert):
digraph DFD {
graph [rankdir = LR]
node [style = "filled", fillcolor = "#E1F5FE", shape = box]
Customer;
// ...plus Prozesse, Datenspeicher, Grenzen und Kanten
}
5. Der Top-Down-Zerlegungsprozess (Schritt fĂŒr Schritt)
Der Online-Bestellprozesssystem demonstriert die Methodik. Auf jeder Ebene erhalten Sie vollstĂ€ndigen, ausfĂŒhrbaren Graphviz-Code.
Schritt 1 â Erstellen Sie das Kontextdiagramm (Ebene 0)
Beginnen Sie mit dem gesamten System als einen einzigen Prozess und identifizieren Sie jede Interaktion mit der AuĂenwelt. Keine Datenspeicher, keine internen Details.

digraph DFD {
// --- GRAPHSTIL & Diagrammtitel ---
graph [
rankdir = LR
splines = true
overlap = false
nodesep = 0.6
ranksep = 0.9
fontname = "Helvetica,Arial,sans-serif"
fontsize = 12
label = "Online-Bestellprozesssystem - Kontext (Ebene 0)"
]
node [ fontname = "Helvetica,Arial,sans-serif", fontsize = 11, penwidth = 1.5 ]
edge [ fontname = "Helvetica,Arial,sans-serif", fontsize = 9,
color = "#555555", arrowsize = 0.8 ]
// Externe EntitÀten
node [shape = box, style = "filled", fillcolor = "#E1F5FE", color = "#0288D1"]
Kunde; PaymentGateway; Lager; Kurier;
// Der einzelne Systemprozess
node [shape = circle, style = "filled", fillcolor = "#E8F5E9",
color = "#388E3C", fixedsize = true, width = 1.6]
System [label="0.0nOnline-BestellnProzesssystem"];
// DatenflĂŒsse (bidirektional, wo Daten in beide Richtungen ausgetauscht werden)
Kunde -> System [label="Bestellung &nKonto"];
System -> Kunde [label="BestÀtigung &nQuittung"];
System -> PaymentGateway [label="Zahlungsnanfrage"];
PaymentGateway -> System [label="Zahlungsnstatus"];
Lager -> System [label="Lagernvorrat"];
System -> Kurier [label="Liefernanfrage", dir=both];
} Interpretation: Das Kontextdiagramm beantwortet âwelche Grenzen hat dieses System und mit wem kommuniziert es?â â es zeigt externe EntitĂ€ten und ihre FlĂŒsse, verbirgt jedoch die gesamte interne Struktur. Wir sehen, dass das System Bestellungen von Kunden entgegennimmt, ĂŒber PaymentGateway abrechnet, den Lagerbestand mit Lager abgleicht und die ErfĂŒllung an Kurier.
Schritt 2 â Zerlegen in Ebene-1 (Hauptprozesse)

Zerlegen Sie den einzelnen Kontextprozess in die SchlĂŒsselfunktionen und fĂŒgen Sie gemeinsame Datenspeicher hinzu. Umgeben Sie Prozesse + Speicher mit einer gestrichelten, abgerundeten Systemgrenze.
digraph DFD {
// --- GRAPHSTIL & Diagrammtitel ---
graph [
rankdir = LR
splines = true
overlap = false
nodesep = 0.5
ranksep = 0.8
fontname = "Helvetica,Arial,sans-serif"
fontsize = 12
label = "Online-Bestellprozesssystem - Ebene 1"
]
node [ fontname = "Helvetica,Arial,sans-serif", fontsize = 11, penwidth = 1.5 ]
edge [ fontname = "Helvetica,Arial,sans-serif", fontsize = 9,
color = "#555555", arrowsize = 0.8 ]
// Externe EntitÀten
node [shape = box, style = "filled", fillcolor = "#E1F5FE", color = "#0288D1"]
Kunde; PaymentGateway; Lager; Kurier;
// --- SYSTEMGRENZEN-CONTAINER ---
subgraph cluster_SystemBoundary {
label = "Online-Bestellprozesssystem";
fontname = "Helvetica,Arial,sans-serif"
fontsize = 14
color = "#757575"
style = "dashed,rounded"
bgcolor = "#FAFAFA"
margin = 20
// Prozesse (grĂŒne Kreise)
node [shape = circle, style = "filled", fillcolor = "#E8F5E9",
color = "#388E3C", fixedsize = true, width = 1.3]
P1 [label="1.0nBestellungnAufgeben"];
P2 [label="2.0nZahlungnVerarbeiten"];
P3 [label="3.0nLagerbestandnBestÀtigen"];
P4 [label="4.0nBestellungnVersenden"];
// Datenspeicher (gelbe DatensÀtze)
node [shape = record, style = "filled", fillcolor = "#FFF9C4",
color = "#FBC02D", fixedsize = false]
OrderDS [label="{ D1 | Bestellungen }"];
ProductDS [label="{ D2 | ProduktnLagerbestand }"];
ShippingDS [label="{ D3 | Sendungen }"];
}
// --- DATENFLOWS: Externe EntitÀten ---
Kunde -> P1 [label="Bestellung &nKontodetails"];
P1 -> Kunde [label="BestellnBestÀtigung"];
P2 -> PaymentGateway [label="Zahlungsnanfrage"];
PaymentGateway -> P2 [label="Zahlungsnstatus"];
Lager -> P3 [label="LagerbestandnverfĂŒgbar"];
Kurier -> P4 [label="Lieferstatus", dir=both];
// --- Prozess-zu-Prozess-Pipeline ---
P1 -> P2 [label="BestellnGesamtsumme"];
P2 -> P3 [label="BezahltenBestellung"];
P3 -> P4 [label="VerifiziertenBestellung"];
// --- Prozess <-> Datenspeicher ---
P1 -> OrderDS [label="Bestellungnerstellen"]; // schreibgeschĂŒtzt
P3 -> ProductDS [label="Lagerbestandnaktualisieren", dir=both]; // lesen & schreiben
P4 -> ShippingDS [label="Sendungnerstellen"]; // schreibgeschĂŒtzt
OrderDS -> P3 [label="Bestelldetails"]; // lesegeschĂŒtzt
ShippingDS -> P4 [label="Sendungsnetikett"]; // lesegeschĂŒtzt
}
Interpretation:
- Die lineare Kette
P1 â P2 â P3 â P4zeigt einen geordneten Pipeline: Eine Bestellung wird vor der Zahlung, vor der LagerbestandsprĂŒfung und vor dem Versand aufgegeben. - Die Zahlungs-Gateway-Austausch verwendet zwei einseitige Pfeile (
Zahlungsanfragenach auĂen,Zahlungsstatusnach innen). - Datenspeicher fungieren als Zustand:
P1 schreibt Bestellungen,P3 liest & aktualisiert Lagerbestand (dir=both),ÂP4 schreibt Sendungen. P3 â ProductDSverwendetdir=bothâ eine Kante, nicht zwei â weil der Prozess sowohl LagerbestĂ€nde liest als auch aktualisiert.
Schritt 3 â Detaillierung: Ebene-2 (Fokus auf einen Prozess)

WĂ€hlen Sie einen Prozess der Ebene-1 und zerlegen Sie ihn nur diesen einen. Zeigen Sie ĂŒbergeordnete Prozesse am Rand (rosa), damit Sie den Kontext behalten, sowie Teilprozesse, Teilspeicher und FlĂŒsse.
digraph DFD {
// --- GRAPHSTIL & Diagrammtitel ---
graph [
rankdir = LR
splines = true
overlap = false
nodesep = 0.5
ranksep = 0.8
fontname = "Helvetica,Arial,sans-serif"
fontsize = 12
label = "Zahlungsprozess (Ebene-2) - Online-Bestellsystem"
]
node [ fontname = "Helvetica,Arial,sans-serif", fontsize = 11, penwidth = 1.5 ]
edge [ fontname = "Helvetica,Arial,sans-serif", fontsize = 9,
color = "#555555", arrowsize = 0.8 ]
// Externe EntitÀt
node [shape = box, style = "filled", fillcolor = "#E1F5FE", color = "#0288D1"]
Kunde; PaymentGateway;
// --- SYSTEMGRENZE (dieser Teilprozess) ---
subgraph cluster_SystemBoundary {
label = "2.0 Zahlungsprozess";
fontname = "Helvetica,Arial,sans-serif"
fontsize = 14
color = "#757575"
style = "dashed,rounded"
bgcolor = "#FAFAFA"
margin = 20
// Teilprozesse (grĂŒne Kreise)
node [shape = circle, style = "filled", fillcolor = "#E8F5E9",
color = "#388E3C", fixedsize = true, width = 1.3]
P21 [label="2.1nBerechnennGesamt"];
P22 [label="2.2nValidierennZahlung"];
P23 [label="2.3nAutorisierennZahlung"];
P24 [label="2.4nBestÀtigennBestellung"];
// Teildatenspeicher (gelbe DatensÀtze)
node [shape = record, style = "filled", fillcolor = "#FFF9C4",
color = "#FBC02D", fixedsize = false]
CartDS [label="{ D1 | Warenkorb/nBestellpositionen }"];
PromoDS [label="{ D2 | Aktionen }"];
PaymentDS [label="{ D3 | ZahlungsnTransaktionen }"];
OrderDS [label="{ D4 | Bestellungen }"];
// Ăbergeordnete Prozesse (rosa) â Kontext aus höherer Ebene
node [shape = circle, style = "filled", fillcolor = "#FCE4EC",
color = "#C2185B", fixedsize = true, width = 1.4]
P1 [label="1.0nBestellungnAufgebenn(ĂŒbergeordnet)"];
P3 [label="3.0nLagerbestandnBestĂ€tigenn(ĂŒbergeordnet)"];
}
// FlĂŒsse von ĂŒbergeordneten Prozessen / Kunden in Teilprozesse
P1 -> P21 [label="BestellnPositionen"];
P1 -> P22 [label="Zahlungsnmethode"];
Kunde -> P22 [label="Zahlungsndetails"];
// Teilprozesskette
P21 -> P22 [label="Gesamt &nRabatte"];
P22 -> P23 [label="ValidiertenZahlung"];
P23 -> P24 [label="Zahlungnautorisiert"];
// Interaktion mit externem Gateway
P23 -> PaymentGateway [label="Autorisierungsnanfrage"];
PaymentGateway -> P23 [label="Genehmigung/nAblehnung"];
// Ausgabe an ĂŒbergeordnete Prozesse / Kunden
P24 -> P3 [label="BezahltenBestellung"];
P24 -> Kunde [label="Zahlungsnbeleg"];
// Zugriffe auf Datenspeicher
P21 -> CartDS [label="Positionennlesen", dir=both];
P22 -> PromoDS [label="Aktionnvalidieren"];
P23 -> PaymentDS [label="Transaktionnprotokollieren", dir=both];
P24 -> OrderDS [label="Statusnaktualisieren"];
}
Interpretation (im Vergleich zu Ebene-1):
- 2.1 Gesamt berechnen ist ein reine Berechnung â liest WarenkorbeintrĂ€ge, erzeugt eine Zahl, keine externe Ein-/Ausgabe auĂer ĂŒber Speicher.
- 2.3 Zahlung autorisieren ist der einzige Schritt, der mit dem externen Zahlungsgateway â Geldbewegungen sind sauber isoliert.
- Die
BestellungenSpeicher erscheint erneut, weil 2.4 aktualisiert den Bestellstatus (ursprĂŒnglich geschrieben von 1.0 auf Ebene-1). - Die Kette
2.1 â 2.2 â 2.3 â 2.4ist ein sequenzieller Validierungspipeline bevor ĂŒbergeben an 3.0 (rosa ĂŒbergeordneter Prozess). - Ăbergeordnete Prozesse 1.0 & 3.0 sind in Rosa dargestellt auĂerhalb der Grenze, um zu verankern, wo die FlĂŒsse beginnen und enden.
Schritt 4 â Nochmal ins Detail gehen: Ebene-3 (rekursiv wiederholen)

Wenden Sie dieselbe Technik auf jeden noch zu komplexen Teilprozess an. Wir zoomen in 2.2 Zahlung validieren.
digraph DFD {
// --- GRAPH STYLE & Diagram Title ---
graph [
rankdir = LR
splines = true
overlap = false
nodesep = 0.5
ranksep = 0.8
fontname = "Helvetica,Arial,sans-serif"
fontsize = 12
label = "Zahlung validieren (Ebene-3) - Online-Bestellprozesssystem"
]
node [ fontname = "Helvetica,Arial,sans-serif", fontsize = 11, penwidth = 1.5 ]
edge [ fontname = "Helvetica,Arial,sans-serif", fontsize = 9,
color = "#555555", arrowsize = 0.8 ]
// External Entity
node [shape = box, style = "filled", fillcolor = "#E1F5FE", color = "#0288D1"]
Customer;
// --- SYSTEM BOUNDARY (this leaf-level sub-process) ---
subgraph cluster_SystemBoundary {
label = "2.2 Zahlung validieren";
fontname = "Helvetica,Arial,sans-serif"
fontsize = 14
color = "#757575"
style = "dashed,rounded"
bgcolor = "#FAFAFA"
margin = 20
// Leaf processes (green circles)
node [shape = circle, style = "filled", fillcolor = "#E8F5E9",
color = "#388E3C", fixedsize = true, width = 1.3]
P221 [label="2.2.1nKarte/ZahlungsnDetailsnĂŒberprĂŒfen"];
P222 [label="2.2.2nBetrugnprĂŒfen"];
P223 [label="2.2.3nGutscheinncodenvalidieren"];
P224 [label="2.2.4nEndbetragnberechnen"];
// Leaf data stores (yellow records)
node [shape = record, style = "filled", fillcolor = "#FFF9C4",
color = "#FBC02D", fixedsize = false]
CardDS [label="{ D1 | KartenRegister }"];
FraudDS [label="{ D2 | Betrugsnregeln }"];
PromoDS [label="{ D3 | Aktionen }"];
CartDS [label="{ D4 | Warenkorb/nBestellpositionen }"];
// Parent processes (pink)
node [shape = circle, style = "filled", fillcolor = "#FCE4EC",
color = "#C2185B", fixedsize = true, width = 1.4]
P21 [label="2.1nGesamtnberechnenn(ĂŒbergeordnet)"];
P23 [label="2.3nZahlungnautorisiertn(ĂŒbergeordnet)"];
}
// Inputs
P21 -> P221 [label="Gesamt &nDatum"];
Customer -> P221 [label="Zahlungsndetails"];
// Sequential validation, with parallel branch
P221 -> P222 [label="ĂberprĂŒftenDetails"];
P222 -> P223 [label="Kein BetrugsnFlagn(parallel)"];
// Feed the final computation
P21 -> P223 [label="Gutscheinncode"];
P221 -> P224 [label="ZahlungnGesamt"];
P223 -> P224 [label="Rabattnangewendet"];
// Output to parent
P224 -> P23 [label="Validierter &nrabattierternGesamt"];
// Data store accesses
P221 -> CardDS [label="KartenĂŒberprĂŒfen"];
P222 -> FraudDS [label="RegelnnprĂŒfen"];
P223 -> PromoDS [label="Nachschlagenn& Anwenden"];
P224 -> CartDS [label="Positionennlesen", dir=both];
}
Interpretation:
- 2.2.1 Karte ĂŒberprĂŒfen ist ein Tor â es muss erfolgreich abgeschlossen sein, bevor die BetrugsprĂŒfung beginnt.
- 2.2.2 (Betrug) und 2.2.3 (Promo) laufen in ParallelitĂ€t: beide lesen Regeln und beide speisen die Endberechnung. Das Label â(parallel)” kennzeichnet dies.”
- 2.2.4 Endbetrag berechnen ist ein Fan-In Punkt â er verbindetÂ
Zahlungssumme +ÂRabattzu einem einzigen validierten Ausgang, der zum ĂŒbergeordneten Element fĂŒhrt 2.3. - Kartenregister und Betrugsregeln sind Detail-Level-Speicher, die auf Ebene 2 nicht sichtbar sind â neue Speicher entstehen natĂŒrlich, wenn Sie zerlegen.
Schritt 5 â Stoppen, wenn Prozesse âprimitiv” sind”
Weiter zerlegen, bis jeder Prozess ein einzige, eindeutige, umsetzbare Aktion. Es gibt keine feste Tiefe; stoppen Sie, wenn ein Prozess eindeutig einer einzigen Funktion oder einer einzigen Entscheidung zugeordnet werden kann. Die oben genannten Ebenen 2.2.1â2.2.4 sind bereits primitiv.
6. Best Practices & hÀufige Fallstricke
â Best Practices
- Nummerieren Sie Prozesse hierarchisch (
2.2.4) damit jedes Diagramm im Baum selbst lokalisiert ist. - Zeichnen Sie ĂŒbergeordnete Prozesse am Rand (rosa), damit FlĂŒsse den Kontext behalten â versĂ€umen Sie niemals, einen Eingabe-/Ausgabewert zu isolieren.
- Verwenden Sie eine einzige bidirektionale Kante (
dir=both) fĂŒr Zwei-Wege-Austausche anstelle von zwei separaten Pfeilen. Reduziert Unordnung. - Halten Sie Beschriftungen beschreibend, aber kurz (âZahlung autorisierenâ, nicht âAPâ).
- Zerlegen Sie jeweils nur einen Prozess â jede Ebene ist ihr eigenes Diagramm; quetschen Sie nicht mehrere Ebenen in eines.
- Balancieren Sie die Diagramme â Eingaben/Ausgaben auf einer ĂŒbergeordneten Ebene mĂŒssen den kombinierten Eingaben/Ausgaben ihrer Kinder entsprechen (Ausgleichsregel).
- Deklarieren Sie immer Elemente â eine Vorlage, die nur Stil definiert und keine Knoten oder Kanten deklariert, rendert eine leere Leinwand. Jedes DFD muss Stil definieren, dann deklarieren, dann verbinden.
- Benennen Sie Datenspeicher eindeutig innerhalb von Kind-Diagrammen, aber nummerieren Sie lokal neu (D1, D2 âŠ) fĂŒr SelbststĂ€ndigkeit.
â HĂ€ufige Fallstricke
- Isolierte Prozesse â ein Prozess ohne Eingabe oder Ausgabe. Jeder Prozess transformiert etwas.
- Fehlende Ausgewogenheit â ein Fluss erscheint auf Ebene-1, aber keiner seiner Level-2-Kinder erzeugt oder verbraucht ihn.
- Vorzeitige Detaillierung â die Darstellung von Datenspeichern im Level-0-Kontextdiagramm (sie gehören nur auf niedrigeren Ebenen).
- Denken in KontrollflĂŒssen â Schleifen oder Entscheidungssymbole in ein DFD einzufĂŒgen; das gehört in Flussdiagramme. DFDs zeigen Daten, nicht die Reihenfolge.
- Zwei parallele Pfeile fĂŒr das, was eigentlich eines sein sollte
dir=bothKante â erzeugt ĂŒberflĂŒssige Doppelstriche. - Falsche Zugriffsrichtung auf den Datenspeicher â einen Datenspeicher als schreibgeschĂŒtzt markieren, obwohl er tatsĂ€chlich beschrieben wird (oder umgekehrt).
- Stilvorlage fĂ€lschlich als Diagramm interpretiert â das Vergessen der Deklaration von Knoten und Kanten fĂŒhrt zu einem leeren Graphen.
7. Checkliste zur Top-Down-Verifikation
Bevor Sie ein Diagramm prĂ€sentieren, prĂŒfen Sie:
- â Jeder Prozess hat â„1 Eingabe und â„1 Ausgabe.
- â Jede Flussbeschriftung ist ein Substantiv (âBestelldetailsâ), kein Verb.
- â Jeder Datenspeicher wird an irgendeinem Punkt gelesen und beschrieben (auĂer bei eindeutig externen Referenzdaten).
- â Ebenengrenzen ausgleichen: Kinder verbrauchen und erzeugen genau das, was ihr Elternteil ausgetauscht hat.
- â Externe EntitĂ€ten erscheinen nur an den RĂ€ndern, niemals innerhalb einer Grenze.
- â
Â
dir=bothwird fĂŒr zweiseitige Austausche verwendet; andernfalls werden einseitige Pfeile verwendet. - â Rosa Verweise auf ĂŒbergeordnete Prozesse zeigen korrekt das zu zerlegende Level an.
- â Der Code definiert echte Knoten, Kanten und einen Rand â es ist nicht nur eine Stilregel.
8. Zusammenfassung des Top-Down-Zerlegungsprozesses
Die Top-Down-DFD-Zerlegung ist eine Reise von Abstraktion zu Details:
- Kontext (L0) â eine Box, alle Grenzen und externe EntitĂ€ten.
- System (L1) â Hauptprozesse, Speicher und die Datenpipeline.
- Teil-Diagramme (L2, L3âŠ) â zoomen Sie rekursisch schrittweise in einen Prozess hinein, wobei der ĂŒbergeordnete Kontext sichtbar bleibt und lokale Speicher nummeriert werden.
Jedes Level beantwortet eine andere Frage: L0 fragt: âWas ist der FuĂabdruck des Systems?â, L1 fragt: âWas sind die HauptdatenflĂŒsse?â, L2+ fragt: âWie wird diese Daten genau transformiert?”
Das Online-Bestellprozess Beispiel demonstriert die vollstĂ€ndige Kette in vollstĂ€ndigem, ausfĂŒhrbarem Graphviz-Code â von einem 4-EntitĂ€ten-Kontextdiagrammbis hin zu einer 4-Schritt-Validierungsroutine (2.2.1 â 2.2.4). Durch Nummerierung der StĂ€mme, Ausbalancieren der FlĂŒsse, unter Einhaltung einer konsistenten Farblegende (blaue KĂ€stchen, grĂŒne Kreise, gelbe DatensĂ€tze, rosa Verweise auf ĂŒbergeordnete Elemente, gestrichelte graue Umrandung) und immer jeden Knoten/Kante explizit zu deklarierenbleibt jedes groĂe System ĂŒbersichtlich und eindeutig â und jedes Diagramm wird tatsĂ€chlich gerendert.
9. Werkzeuge: Erstellen einer DFD-Top-Down-Zerlegung mit Visual Paradigm AI
Visual Paradigm AI integriert einen KI-Chatbot direkt in das ModellierungswerkzeugAnstatt jede Ebene von Hand zu zeichnen, können Sie die gesamte Zerlegung dialogbasiert steuern und das Ergebnis anschlieĂend verfeinern. So verwenden Sie es genau fĂŒr den in diesem Leitfaden beschriebenen Ansatz.
9.1 Kernfunktionen fĂŒr DFD-Arbeiten
Der VP AI Chatbot ist ein Text- und Code-Assistent , der dialogbasiert mit Ihnen zusammenarbeitet. FĂŒr die DFD-Top-Down-Zerlegung kann er:
| FĂ€higkeit | Was es fĂŒr Sie tut |
|---|---|
| Diagrammcode generieren | Graphviz (DOT) fĂŒr eine gegebene Prozessbeschreibung erzeugen â Ebene fĂŒr Ebene |
| AngehÀngte Bilder analysieren | Ein von Ihnen hochgeladenes handgezeichnetes oder bestehendes DFD-Bild lesen und in strukturierte Modelle umwandeln |
| Iterativ verfeinern | Ihr Feedback (âZoom auf 2.2â, âZweig âRĂŒckgangâ hinzufĂŒgenâ) aufnehmen und das Diagramm neu generieren |
| Interpretationen erklÀren | Durchgehen, was jede EntitÀt, jeder Prozess, jeder Speicher und jeder Fluss bedeutet |
| Syntax validieren | PrĂŒfen, dass das DOT strukturell korrekt ist, bevor Sie es rendern |
| Strategie-/Diagrammausgabe erzeugen | UnterstĂŒtzende Diagramme oder Rahmenwerke erzeugen, die das DFD begleiten (z. B. eine Swimlane oder einen Organisationskontext) |
đ Hinweis: Visual Paradigm unterstĂŒtzt eine Reihe von Diagrammnotationen. Bevorzugen Sie BPMN fĂŒr die GeschĂ€ftsprozessmodellierung, die Start-/Endereignisse, Gateways und Schwimmbahnen erfordert; verwenden Sie Graphviz-basierte DFDs fĂŒr eine strenge Datenflussmodellierung, wie sie in diesem Leitfaden durchgehend dargestellt wird.
9.2 DurchgefĂŒhrtes Dialogbeispiel â Zerlegung des Online-Bestellprozesses
Hier ist eine realistische Chat-Sitzung, die den von uns durchgefĂŒhrten Schritten entspricht. Beachten Sie, wie jeder Prompt eine Ebene tiefer zoomt â genau die Top-Down-Methodik.
Prompt 1 â Starten Sie das Kontextdiagramm:
âErstellen Sie ein Kontextdiagramm (Ebene 0) fĂŒr ein System zum Online-Bestellprozess. Externe EntitĂ€ten: Kunde, Payment-Gateway, Lager, Kurier.â
VP AI antwortet mit einem DFD der Ebene 0 â einem zentralen Prozess, vier externen EntitĂ€ten und deren FlĂŒssen â den Sie in ein Diagramm einfĂŒgen.
Prompt 2 â FĂŒgen Sie die Detailebene hinzu:
âZerlegen Sie es nun in ein DFD der Ebene 1 mit den Prozessen: 1.0 Bestellung aufgeben, 2.0 Zahlung verarbeiten, 3.0 Lagerbestand bestĂ€tigen, 4.0 Bestellung versenden. FĂŒgen Sie Datenspeicher fĂŒr Bestellungen, Produktbestand und Sendungen hinzu.â
VP AI liefert zurĂŒck das Diagramm der Ebene 1 mit sequentiell verketteten Prozessen, angehĂ€ngten Speichern und erhaltenen FlĂŒssen externer EntitĂ€ten â die Pipeline, die Sie in Schritt 2 des Leitfadens gesehen haben.
Prompt 3 â Zoomen Sie in einen Prozess hinein:
âZoomen Sie in 2.0 Zahlung verarbeiten. Erstellen Sie ein Teil-Diagramm der Ebene 2 mit 2.1 Gesamtbetrag berechnen, 2.2 Zahlung validieren, 2.3 Zahlung autorisieren, 2.4 Bestellung bestĂ€tigen. Behalten Sie 1.0 und 3.0 als Elternreferenzen bei.â
VP AI erzeugt das Teil-Diagramm der Ebene 2: Teilprozesse, lokale Speicher (D1âD4), die Payment-Gateway-Interaktion und rosa Elternreferenzen fĂŒr 1.0 und 3.0 â passend zu Schritt 3.
Prompt 4 â Gehen Sie erneut tiefer:
âGehen Sie in 2.2 Zahlung validieren als Diagramm der Ebene 3 hinein: 2.2.1 Karte ĂŒberprĂŒfen, 2.2.2 Betrug prĂŒfen, 2.2.3 Promo validieren, 2.2.4 Endbetrag berechnen. FĂŒgen Sie Speicher fĂŒr Kartenregister, Betrugsregeln, Promotionen und Warenkorbelemente hinzu.â
VP AI generiert das Blatt-Diagramm der Ebene 3 mit der Fan-In-Berechnung (2.2.4) und den parallelen Betrugs-/Promo-Zweigen â genau Schritt 4.
Prompt 5 â FĂŒgen Sie die Ausnahmebehandlung hinzu:
âFĂŒgen Sie den Fehlerpfad hinzu: Wenn 2.2.2 Betrug prĂŒfen die Transaktion markiert, leiten Sie sie an einen Prozess fĂŒr Stornierungshinweis zurĂŒck zum Kunden weiter.â
VP AI verfeinert das Diagramm mit einer Ablehnungs-Zweig und gleicht die FlĂŒsse automatisch neu aus.
9.3 FunktionsfÀhige Prompting-Muster
Verwenden Sie diese Muster, um zuverlÀssige Ergebnisse gemÀà der Methodik zu erhalten:
| Ziel | Beispiel-Prompt |
|---|---|
| Eine Ebene tiefer zerlegen | âIn âZoomen3.0 Lagerbestand bestĂ€tigen als Level-2-Teil-Diagramm.â |
| Nummerierung angeben | âNummerierte Prozesse verwenden â2.1, 2.2, 2.3.â |
| Elternkontext erhalten | âBehalten â1.0 und â3.0 als Elternreferenzen am Rand.â |
| Datenspeicher hinzufĂŒgen | âSpeicher einschlieĂen: âD1 Warenkorbartikel, D2 Aktionen.â |
| Zweiseitigen Fluss anzeigen | âVerwenden âdir=both fĂŒr ProzessâSpeicher-Lese- und SchreibvorgĂ€nge.â |
| Balanciere das Level | âStellen Sie sicher, dass die Eingaben und Ausgaben dem ĂŒbergeordneten Level entsprechen.â |
| FĂŒgen Sie einen Fehlerpfad hinzu | âFĂŒgen Sie einen Ausnahmepfad hinzu, wenn die Zahlung abgelehnt wird.â |
| Begrenzen Sie die Tiefe | âStoppen Sie bei primitiven Prozessen â einzelne, umsetzbare Aktionen.â |
9.4 Hochladen eines Bildes zur Analyse
Wenn Sie bereits eine handgezeichnete oder veraltete DFD haben und diese digitalisiert werden soll:
- FĂŒgen Sie das Bild an an den Chat an (ein Screenshot, Foto oder Export einer bestehenden DFD).
- Fragen Sie:Â âAnalysieren Sie dieses DFD-Bild und wandeln Sie es in ein strukturiertes Modell um, das ich bearbeiten kann.â
- VP AI untersucht das Bild (Lesen von Formen, Beschriftungen und Pfeilen) und rekonstruiert die EntitĂ€ten, Prozesse, Speicher und FlĂŒsse als bearbeitbares Diagramm.
đ Die KI liest den Inhalt des Bildes Inhalt â Rechtecke, Kreise, DatensĂ€tze und ihre Beschriftungen â und reproduziert sie in der korrekten Notation. Dies ist ein schneller Weg von einer groben Skizze zu einem sauberen, geschichteten Modell, das Sie anschlieĂend weiter zerlegen können.
9.5 Iterieren mit dem Artefakt-Workflow
VP AI speichert jedes generierte Diagramm als ein Artefakt , auf das Sie wÀhrend der Verfeinerung verweisen können:
- âVerfeinern Sie das Level-2-Artefakt, um einen Betrug-Abzweig hinzuzufĂŒgen.â â zielt auf ein spezifisches, bereits generiertes Diagramm anstatt von Grund auf neu zu generieren.
- âGenerieren Sie das Kontextdiagramm neu, aber entfernen Sie die Lager-EntitĂ€t.â â ersetzt ein Artefakt, wenn sich der Umfang Ă€ndert.
- “Vergleichen Sie die Level-2- und Level-3-Artefakte auf Ausgewogenheit.” â KreuzprĂŒfung der ParitĂ€t des Eltern-/Kind-Flusses.
Da Artefakte den Zustand der Konversation speichern, können Sie Verfeinerungen nach Verfeinerungen schichten, ohne frĂŒhere Entscheidungen zu verlieren â das Wesen der Top-Down-Zerlegung.
9.6 Empfohlener Arbeitsablauf-Checklist
| Phase | Aktion |
|---|---|
| 1. GerĂŒst | Fordern Sie zunĂ€chst das Kontextdiagramm (Level 0) an. |
| 2. Legen Sie Level 1 fest | Fordern Sie die Zerlegung der Hauptprozesse mit Speichern und einer Grenze an. |
| 3. Tiefenanalyse durchfĂŒhren | Zoomen Sie einen Prozess nach dem anderen; behalten Sie Elternreferenzen bei. |
| 4. Verfeinern | Fordern Sie Ausnahmepfade, Ausgleichskorrekturen und Speicherberichtigungen an. |
| 5. Validieren | Lassen Sie die KI die DOT-Syntax prĂŒfen; ĂŒberprĂŒfen Sie die Checkliste in Abschnitt 7. |
| 6. Dokumentieren | Fordern Sie die Interpretationsnarrative an, die jedem Level beizufĂŒgen ist. |
9.7 Beispiel-Ausgabe â Fordern Sie VP AI auf, den Level-1-Code zu generieren
Eine typische Antwort des Chatbots fĂŒr die Schritt-2-Zerlegung wĂ€re das vollstĂ€ndige, ausfĂŒhrbare DOT, die Sie zuvor gesehen haben:

digraph DFD {
graph [
rankdir = LR, splines = true, overlap = false,
nodesep = 0.5, ranksep = 0.8,
fontname = "Helvetica,Arial,sans-serif", fontsize = 12,
label = "Online-Bestellprozesssystem - Ebene 1"
]
node [ fontname = "Helvetica,Arial,sans-serif", fontsize = 11, penwidth = 1.5 ]
edge [ fontname = "Helvetica,Arial,sans-serif", fontsize = 9,
color = "#555555", arrowsize = 0.8 ]
// Externe EntitÀten
node [shape = box, style = "filled", fillcolor = "#E1F5FE", color = "#0288D1"]
Kunde; PaymentGateway; Lager; Kurier;
subgraph cluster_SystemBoundary {
label = "Online-Bestellprozesssystem";
fontname = "Helvetica,Arial,sans-serif"
fontsize = 14
color = "#757575"
style = "dashed,rounded"
bgcolor = "#FAFAFA"
margin = 20
node [shape = circle, style = "filled", fillcolor = "#E8F5E9",
color = "#388E3C", fixedsize = true, width = 1.3]
P1 [label="1.0nBestellungnAufgeben"];
P2 [label="2.0nZahlungnVerarbeiten"];
P3 [label="3.0nLagerbestandnBestÀtigen"];
P4 [label="4.0nBestellungnVersenden"];
node [shape = record, style = "filled", fillcolor = "#FFF9C4",
color = "#FBC02D", fixedsize = false]
OrderDS [label="{ D1 | Bestellungen }"];
ProductDS [label="{ D2 | ProduktnLagerbestand }"];
ShippingDS [label="{ D3 | Sendungen }"];
}
// FlĂŒsse
Kunde -> P1 [label="Bestellung &nKontodetails"];
P1 -> Kunde [label="BestellnBestÀtigung"];
P2 -> PaymentGateway [label="Zahlungsnanfrage"];
PaymentGateway -> P2 [label="Zahlungsnstatus"];
Lager -> P3 [label="Lagernvorrat verfĂŒgbar"];
Kurier -> P4 [label="Lieferstatus", dir=both];
P1 -> P2 [label="BestellnGesamtbetrag"];
P2 -> P3 [label="BezahltenBestellung"];
P3 -> P4 [label="VerifiziertenBestellung"];
P1 -> OrderDS [label="Bestellungnerstellen"];
P3 -> ProductDS [label="Lagerbestandnaktualisieren", dir=both];
P4 -> ShippingDS [label="Sendungnerstellen"];
OrderDS -> P3 [label="Bestelldetails"];
ShippingDS -> P4 [label="Sendungsnetikett"];
}
FĂŒgen Sie dies in ein VP-Diagramm ein, und Sie haben das vollstĂ€ndig strukturierte Modell der Ebene 1 â bereit, mit dem nĂ€chsten Prompt erneut dekomponiert zu werden.
10. Zusammenfassung
Die Top-down-DFD-Dekomposition ist eine Reise von Abstraktion zu Details:
- Kontext (L0) â eine Box, alle Grenzen und externen EntitĂ€ten.
- System (L1) â Hauptprozesse, Speicher und die Datenpipeline.
- Teil-Diagramme (L2, L3âŠ) â rekursiv in jeweils einen Prozess hineinzoomen, wobei der ĂŒbergeordnete Kontext sichtbar bleibt und lokale Speicher nummeriert werden.
Jede Ebene beantwortet eine andere Frage: L0 fragt: âWas ist der FuĂabdruck des Systems?â, L1 fragt: âWas sind die HauptdatenflĂŒsse?â, L2+ fragt: âWie wird diese Daten genau transformiert?”
Mit Visual Paradigm AIist die gesamte Leiter konversationell: Prompt fĂŒr Ebene 0, Aufforderung zur Dekomposition, schrittweises Hineinzoomen in einen Prozess, Anforderung von Ausnahmepfaden und Hochladen von Bildern zur Digitalisierung bestehender Diagramme. Kombiniert mit strikter Nummerierung, Flussausgleich, einer konsistenten Farblegendeund vollstĂ€ndiger Zuerst deklarieren, dann verbinden Code, jedes groĂe System bleibt ĂŒbersichtlich, eindeutig â und jedes Diagramm wird tatsĂ€chlich gerendert. đ


