1. Einführung in Datenflussdiagramme
Ein Datenflussdiagramm (DFD) ist eine grafische Darstellung, wie Daten durch ein Informationssystem fließen. Es zeigt:
- Woher Daten kommen und wohin sie fließen
- Wie Daten verarbeitet werden
- Wo Daten gespeichert werden
- Wer oder was mit dem System interagiert

2. Schlüsselkonzepte
Kernelemente
| Element | Symbol | Zweck |
|---|---|---|
| Externe Entität | Rechteck | Person, Organisation oder System, das Daten sendet/empfängt |
| Prozess | Kreis/Ellipse | Verwandelt eingehende Daten in ausgehende Daten |
| Datenspeicher | Offenes Rechteck | Repository für persistente Datenspeicherung |
| Datenfluss | Pfeil | Zeigt die Richtung der Datenbewegung an |
DFD-Ebenen
- Kontextdiagramm (Ebene 0): Höchste Ebene, zeigt Systemgrenzen und wichtige externe Entitäten
- Ebene 1: Zerlegt den Hauptprozess in wichtige Teilprozesse
- Ebene 2+: Weitere Zerlegung, die detaillierte Prozesse zeigt
3. Logische vs. physische DFDs
Logische DFD

Eine logische DFD (auch als „wesentliches Modell” bezeichnet) konzentriert sich auf:”
- WAS das System tut
- Geschäftsaktivitäten und Informationsanforderungen
- Unabhängig von der Implementierungstechnologie
Eigenschaften:
- Zeigt Geschäftsabläufe und Prozesse
- Keine technologie-spezifischen Details
- Abstrakter und benutzerorientierter
- Hilft, Geschäftsanforderungen zu verstehen
Physische DFD

Eine physische DFD (auch als „Implementierungsmodell” bezeichnet) konzentriert sich auf:”
- WIE das System implementiert wird
- Technische Details und Einschränkungen
- Spezifische Technologien und Systeme
Eigenschaften:
- Zeigt tatsächliche Hardware, Software und Personen
- Enthält Implementierungsdetails
- Konkreter und entwicklerorientierter
- Hilft bei Systemdesign und -bereitstellung
Vergleichstabelle
| Aspekt | Logisches DFD | Physisches DFD |
|---|---|---|
| Fokus | Geschäftsbedürfnisse | Umsetzung |
| Wer | Business Analysten, Benutzer | Systemdesigner, Entwickler |
| Ebene | Hochlevelig, abstrakt | Detailliert, konkret |
| Komponenten | Geschäftsprozesse | Technische Prozesse |
| Datenspeicher | Konzeptionelle Entitäten | Physische Dateien/Datenbanken |
| Entitäten | Geschäftsrollen | Tatsächliche Systeme/Geräte |
4. DFD-Komponenten

Externe Entitäten
- Quellen und Ziele von Daten
- Außerhalb der Systemgrenze
- Benannt mit Substantiven
Prozesse
- Transformieren Daten von Eingabe zu Ausgabe
- Benannt mit Verb + Substantiv
- Nummeriert zur Identifizierung
Datenspeicher
- Persistente Datenrepositorien
- Mit Substantiven benannt
- Nummerierung D1, D2, D3…
Datenflüsse
- Zeigt die Bewegung von Daten
- Mit beschreibenden Beschriftungen benannt
- Die Richtung zeigt den Fluss an
5. Arbeitsbeispiele mit Graphviz
Beispiel 1: Hotelverwaltungssystem (Logisches DFD)

digraph HotelMIS_DFD_Logical {
// --- GRAPH STYLE ---
graph [
rankdir = LR
splines = true
overlap = false
nodesep = 0.6
ranksep = 1.0
fontname = "Helvetica,Arial,sans-serif"
fontsize = 12
]
// --- NODE STYLES ---
node [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 11
penwidth = 1.5
]
// External Entities
node [shape = box, style = "filled", fillcolor = "#E1F5FE", color = "#0288D1"]
Guest;
Staff;
// --- SYSTEM BOUNDARY ---
subgraph cluster_SystemBoundary {
label = "Hotel MIS System Boundary";
fontname = "Helvetica,Arial,sans-serif";
fontcolor = "#757575";
fontsize = 14;
color = "#757575";
style = "dashed,rounded";
bgcolor = "#FAFAFA";
margin = 20;
// Processes
node [shape = circle, style = "filled", fillcolor = "#E8F5E9", color = "#388E3C", fixedsize = true, width = 1.3]
P1 [label="1.0nManagenReservations"];
P2 [label="2.0nCheck-In/nOut"];
P3 [label="3.0nManagenInventory"];
// Data Stores
node [shape = record, style = "filled", fillcolor = "#FFF9C4", color = "#FBC02D", fixedsize = false]
ReservationsDS [label="{ <id> D1 | ReservationsnDatabase }"];
RoomsDS [label="{ <id> D2 | Room StatusnDatabase }"];
InventoryDS [label="{ <id> D3 | InventorynDatabase }"];
}
// --- EDGE STYLES ---
edge [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 9
color = "#555555"
arrowsize = 0.8
]
// --- DATA FLOWS ---
// Guest Interactions
Guest -> P1 [label="Booking Request"];
P1 -> Guest [label="Confirmation"];
Guest -> P2 [label="Arrival"];
P2 -> Guest [label="Room Key/Receipt"];
// Staff Interactions
Staff -> P3 [label="Update Inventory"];
P3 -> Staff [label="Alerts/Reports"];
// Process to Data Store
P1 -> ReservationsDS [label="New Reservation"];
ReservationsDS -> P1 [label="Check Availability"];
P1 -> RoomsDS [label="Room Details Request"];
RoomsDS -> P1 [label="Available Rooms"];
P2 -> RoomsDS [label="Room Status Update"];
RoomsDS -> P2 [label="Room Information"];
P2 -> P3 [label="Stay Details"];
P3 -> InventoryDS [label="Stock Update"];
InventoryDS -> P3 [label="Stock Levels"];
} Beispiel 2: Logisches DFD – Bibliotheksverwaltungssystem

digraph LibrarySystem_Logical {
// --- GRAPH STYLE ---
graph [
rankdir = TB
splines = true
nodesep = 0.5
ranksep = 0.8
fontname = "Helvetica,Arial,sans-serif"
fontsize = 12
]
// --- NODE STYLES ---
node [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 11
penwidth = 1.5
]
// External Entities
node [shape = box, style = "filled", fillcolor = "#E1F5FE", color = "#0288D1"]
Member;
Librarian;
// --- SYSTEM BOUNDARY ---
subgraph cluster_LibrarySystem {
label = "Library System (Logical)";
style = "dashed,rounded";
color = "#757575";
bgcolor = "#FAFAFA";
margin = 20;
// Processes
node [shape = circle, style = "filled", fillcolor = "#E8F5E9", color = "#388E3C", width = 1.4]
P1 [label="1.0nManagenCatalog"];
P2 [label="2.0nProcessnBorrowing"];
P3 [label="3.0nHandlenReturns"];
// Data Stores
node [shape = record, style = "filled", fillcolor = "#FFF9C4", color = "#FBC02D"]
CatalogDS [label="{ <id> D1 | BooknCatalog }"];
TransactionsDS [label="{ <id> D2 | BorrowingnRecords }"];
MemberDS [label="{ <id> D3 | MembernDatabase }"];
}
// --- EDGE STYLES ---
edge [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 9
color = "#555555"
arrowsize = 0.8
]
// --- DATA FLOWS ---
// Member Interactions
Member -> P1 [label="Search Books"];
P1 -> Member [label="Search Results"];
Member -> P2 [label="Borrow Request"];
P2 -> Member [label="Borrow Confirmation"];
Member -> P3 [label="Return Books"];
P3 -> Member [label="Return Receipt"];
// Librarian Interactions
Librarian -> P1 [label="Add/Update Books"];
P1 -> Librarian [label="Catalog Update Confirmation"];
Librarian -> P3 [label="Process Overdue"];
P3 -> Librarian [label="Overdue Report"];
// Data Flows
P1 -> CatalogDS [label="Book Updates"];
CatalogDS -> P1 [label="Catalog Data"];
P2 -> CatalogDS [label="Check Availability"];
CatalogDS -> P2 [label="Book Status"];
P2 -> MemberDS [label="Check Member Status"];
MemberDS -> P2 [label="Member Info"];
P2 -> TransactionsDS [label="Create Borrow Record"];
TransactionsDS -> P2 [label="Borrowing History"];
P3 -> TransactionsDS [label="Update Return"];
TransactionsDS -> P3 [label="Borrow Records"];
P3 -> MemberDS [label="Update Member Status"];
MemberDS -> P3 [label="Member Info"];
} Beispiel 3: Physisches DFD – Bibliotheksverwaltungssystem

digraph LibrarySystem_Physical {
// --- GRAPH STYLE ---
graph [
rankdir = TB
splines = true
nodesep = 0.5
ranksep = 0.8
fontname = "Helvetica,Arial,sans-serif"
fontsize = 12
]
// --- NODE STYLES ---
node [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 11
penwidth = 1.5
]
// External Entities (Physical)
node [shape = box, style = "filled", fillcolor = "#E1F5FE", color = "#0288D1"]
"Library Member" [label="LibrarynMember"];
"Librarian" [label="LibrariannStaff"];
"Email System" [label="EmailnSystem"];
"Payment Gateway" [label="PaymentnGateway"];
// --- SYSTEM BOUNDARY ---
subgraph cluster_LibrarySystem_Physical {
label = "Library Management System (Physical Implementation)";
style = "dashed,rounded";
color = "#757575";
bgcolor = "#FAFAFA";
margin = 20;
// Physical Processes (with technology details)
node [shape = circle, style = "filled", fillcolor = "#E8F5E9", color = "#388E3C", width = 1.4]
P1 [label="1.0nWeb Catalogn(HTML, JS)"];
P2 [label="2.0nBorrowingnAPIn(Python/REST)"];
P3 [label="3.0nReturnnProcessorn(Java)"];
// Physical Data Stores (with technology details)
node [shape = record, style = "filled", fillcolor = "#FFF9C4", color = "#FBC02D"]
CatalogDS [label="{ <id> D1 | PostgreSQLnBook Catalog }"];
TransactionsDS [label="{ <id> D2 | MongoDBnBorrow Records }"];
MemberDS [label="{ <id> D3 | OraclenMember DB }"];
// Additional physical components
node [shape = box, style = "filled", fillcolor = "#F3E5F5", color = "#8E24AA"]
"Cache Server" [label="RedisnCache"];
"Message Queue" [label="RabbitMQnQueue"];
}
// --- EDGE STYLES ---
edge [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 9
color = "#555555"
arrowsize = 0.8
]
// --- DATA FLOWS (Physical) ---
// Physical Member Interactions
"Library Member" -> P1 [label="HTTP GETnBook Search"];
P1 -> "Library Member" [label="HTML/JSONnResults"];
"Library Member" -> P2 [label="REST APInBorrow Request"];
P2 -> "Library Member" [label="JSONnConfirmation"];
"Library Member" -> P3 [label="REST APInReturn"];
P3 -> "Library Member" [label="JSONnReceipt"];
// Physical Librarian Interactions
"Librarian" -> P1 [label="HTTPSnCatalog Mgmt"];
P1 -> "Librarian" [label="HTMLnConfirmation"];
"Librarian" -> P3 [label="REST APInOverdue Process"];
P3 -> "Librarian" [label="PDF Report"];
// External System Interactions
P2 -> "Email System" [label="SMTPnNotification"];
P3 -> "Payment Gateway" [label="HTTPSnFine Payment"];
// Data Flows (Physical)
P1 -> CatalogDS [label="SQL UPDATE"];
CatalogDS -> P1 [label="SQL SELECT"];
P1 -> "Cache Server" [label="Cache Update"];
"Cache Server" -> P1 [label="Cache Hit"];
P2 -> CatalogDS [label="SQL SELECT"];
CatalogDS -> P2 [label="SQL RESULT"];
P2 -> MemberDS [label="SQL SELECT"];
MemberDS -> P2 [label="SQL RESULT"];
P2 -> TransactionsDS [label="INSERT"];
TransactionsDS -> P2 [label="SELECT"];
P2 -> "Message Queue" [label="PublishnBorrow Event"];
P3 -> TransactionsDS [label="UPDATE"];
TransactionsDS -> P3 [label="SELECT"];
P3 -> MemberDS [label="UPDATE"];
MemberDS -> P3 [label="SELECT"];
P3 -> "Message Queue" [label="PublishnReturn Event"];
} Beispiel 4: E-Commerce-Bestellabwicklung (logisches DFD)

digraph ECommerce_Logical {
// --- GRAPHSTIL ---
graph [
rankdir = LR
splines = true
nodesep = 0.5
ranksep = 0.8
fontname = "Helvetica,Arial,sans-serif"
fontsize = 12
]
// --- KNOTENSTILE ---
node [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 11
penwidth = 1.5
]
// Externe Entitäten
node [shape = box, style = "filled", fillcolor = "#E1F5FE", color = "#0288D1"]
Kunde;
Lieferant;
"Zahlungsabwickler" [label="Zahlungsnabwickler"];
// --- SYSTEMGRENZE ---
subgraph cluster_ECommerce {
label = "E-Commerce-System (logisch)";
style = "dashed,rounded";
color = "#757575";
bgcolor = "#FAFAFA";
margin = 20;
// Prozesse
node [shape = circle, style = "filled", fillcolor = "#E8F5E9", color = "#388E3C", width = 1.4]
P1 [label="1.0nBestellungnverarbeiten"];
P2 [label="2.0nLagerbestandnverwalten"];
P3 [label="3.0nVersandnbearbeiten"];
// Datenspeicher
node [shape = record, style = "filled", fillcolor = "#FFF9C4", color = "#FBC02D"]
OrderDS [label="{ <id> D1 | Bestellungen }"];
InventoryDS [label="{ <id> D2 | Lagerbestand }"];
ShipmentDS [label="{ <id> D3 | Sendungen }"];
}
// --- KANTENSTILE ---
edge [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 9
color = "#555555"
arrowsize = 0.8
]
// --- DATENFLOWS ---
// Kundeninteraktionen
Kunde -> P1 [label="Bestelldetails"];
P1 -> Kunde [label="Bestellbestätigung"];
Kunde -> P3 [label="Bestellung verfolgen"];
P3 -> Kunde [label="Verfolgungsinformationen"];
// Zahlungsabwickler
"Zahlungsabwickler" -> P1 [label="Zahlungsantwort"];
P1 -> "Zahlungsabwickler" [label="Zahlungsanfrage"];
// Lieferant
Lieferant -> P2 [label="Lageraktualisierung"];
P2 -> Lieferant [label="Nachbestellanfrage"];
// Prozessdatenflüsse
P1 -> OrderDS [label="Bestellung speichern"];
OrderDS -> P1 [label="Bestellhistorie"];
P1 -> InventoryDS [label="Lagerbestand prüfen"];
InventoryDS -> P1 [label="Verfügbarkeit"];
P1 -> P3 [label="Versanddetails"];
P2 -> InventoryDS [label="Lagerbestand aktualisieren"];
InventoryDS -> P2 [label="Aktueller Lagerbestand"];
P3 -> OrderDS [label="Status aktualisieren"];
OrderDS -> P3 [label="Bestellinformationen"];
P3 -> ShipmentDS [label="Sendung erstellen"];
ShipmentDS -> P3 [label="Sendungsdetails"];
}
6. Best Practices
Für logische DFDs
- Konzentrieren Sie sich auf Geschäftsprozesse, nicht auf Technologie
- Verwenden Sie Geschäftsterminologiedie Stakeholder verstehen
- Halten Sie Prozesse auf konsistenten Abstraktionsebenen
- Validieren Sie mit Benutzern aus dem Geschäftsbereichfür Genauigkeit
- Zeigen Sie alle wichtigen Datenflüssezwischen den Komponenten
Für physische DFDs
- Enthalten Sie technologie-spezifische Details
- Berücksichtigen Sie Leistung und Skalierbarkeit
- Dokumentieren Sie System-Schnittstellenklar
- Enthalten Sie Fehlerbehandlungund Wiederherstellungsprozesse
- Richten Sie sich an der tatsächlichen Systemarchitektur aus
Allgemeine Best Practices
- Beginnen Sie mit einem Kontextdiagramm
- Nummerieren Sie Prozesse hierarchisch
- Verwenden Sie aussagekräftige Bezeichnungen für alle Komponenten
- Vermeiden Sie sich kreuzende Datenflüsse
- Validieren Sie regelmäßig mit den Beteiligten
7. Häufige Fallstricke

Fallstrick 1: Vermischung von logischen und physischen Aspekten
❌ Falsch: Hinzufügen von Datenbanktechnologienamen in einem logischen DFD
✅ Richtig: Halten Sie das logische DFD technologieunabhängig
Fallstrick 2: Fehlende Datenflüsse
❌ Falsch: Darstellung nur einer Richtung zwischen Entitäten
✅ Richtig: Einbeziehen von bidirektionalen Flüssen, wo angemessen
Fallstrick 3: Zu komplex
❌ Falsch: Platzieren von 20+ Prozessen in einem Diagramm
✅ Richtig: Zerlegen in mehrere, fokussierte Diagramme
Fallstrick 4: Falsche Beschriftung von Datenflüssen
❌ Falsch: „Daten“ als Bezeichnung
✅ Richtig: Beschreibende Bezeichnungen wie „Kundenbestelldetails“
Falle 5: Falsche Prozessgrenzen
❌ Falsch: Ein Prozess, der mehrere nicht zusammenhängende Funktionen ausführt
✅ Richtig: Getrennte Prozesse für unterschiedliche Funktionen
Fazit
Datenflussdiagramme sind wesentliche Werkzeuge für die Systemanalyse und -gestaltung. Das Verständnis des Unterschieds zwischen logischen und physischen DFDs hilft Ihnen, mit verschiedenen Interessengruppen in unterschiedlichen Phasen des Softwareentwicklungslebenszyklus effektiv zu kommunizieren.
- Logische DFDs verbinden geschäftliche Anforderungen und technische Lösungen
- Physische DFDs leiten Implementierungs- und Bereitstellungsentscheidungen
Verwenden Sie die bereitgestellten Beispiele als Vorlagen für Ihre eigenen DFDs, passen Sie sie an Ihre spezifischen Systemanforderungen an und befolgen Sie dabei die oben genannten Best Practices.
Zusätzliche Ressourcen
- KI-Gane-und-Sarson-DFD-Generator von Visual Paradigm: Erklärt, wie die KI-Tools von Visual Paradigm Gane-Sarson-DFDs aus Textbeschreibungen generieren können.
- Eine Schritt-für-Schritt-Anleitung zur Erstellung von Datenflussdiagrammen mit Visual Paradigm: Bietet ein Tutorial zur Erstellung von DFDs mit dem Online-Tool von Visual Paradigm, von der Registrierung bis zum Teilen.
- Wie erstellt man ein Datenflussdiagramm (DFD)?: Ein Leitfaden, der erklärt, was ein DFD ist, wozu es dient und welche Haupttypen es gibt (physisch und logisch).
- Einsteigerleitfaden zu SSADM-DFD-Diagrammen mit Visual Paradigm Online: Ein Einführungsguide zur Erstellung von Datenflussdiagrammen im SSADM-Stil mit Visual Paradigm Online.
- Umfassender Leitfaden zu Datenflussdiagrammen (DFD): Entmystifizierung des Informationsflusses: Ein Überblick über DFDs, der ihre Elemente detailliert beschreibt und erklärt, warum Visual Paradigm ein geeignetes Werkzeug für deren Erstellung ist.
- Beherrschung von Datenflussdiagrammen mit Visual Paradigm: Ein Schritt-für-Schritt-Leitfaden: Ein praxisorientierter Leitfaden, der Beispiele und Vorlagen verwendet, um die Erstellung von DFDs zu vermitteln, mit Fallstudien wie Online-Shopsystemen.
- Verstehen von logischen DFDs im Vergleich zu physischen DFDs: Wann und warum wir sie benötigen: Erklärt die Unterschiede, Zwecke und geeigneten Anwendungsfälle für logische und physische Datenflussdiagramme.
- Einsteigerleitfaden für Datenflussdiagramme (DFD) mit Visual Paradigm Online: Ein einsteigerfreundliches Tutorial, das die Schritte zur Erstellung eines DFD mit Visual Paradigm Online erklärt.
- DFD-Archiv – Visual Paradigm-Leitfäden: Eine Sammlung von Artikeln zu DFD-Themen, einschließlich KI-Generatoren, Validierung, Ausgewogenheit und Ebenen.
- Erste Schritte Leitfaden für Datenflussdiagramme (DFD) mit Visual Paradigm Online: Beschreibt detailliert den schrittweisen Prozess zur Erstellung von DFDs, einschließlich der wichtigsten Komponenten und der Verwendung von Vorlagen.
- Erstellen Sie DFDs mit dem besten DFD-Tool: Diskutiert die grafische Darstellung von Datenflüssen, erläutert die Unterschiede zwischen logischen und physischen DFDs und untersucht die Vorteile jeder Art.
-
Einsteigerleitfaden für Datenflussdiagramme (DFD) mit Visual Paradigm Online: Ein einsteigerfreundlicher Leitfaden auf Indonesisch zu DFDs, der Komponenten und den schrittweisen Erstellungsprozess in Visual Paradigm Online darlegt.
Dieser Leitfaden bietet eine Grundlage für die Erstellung effektiver DFDs. Denken Sie daran, dass gute Diagramme durch Iteration und Feedback der Beteiligten entstehen.
Der Artikel ist auch in English, Español and Français verfügbar.



