Datenfluss verstehen und als DFD modellieren
Du liest Datenwege, verfolgst Rechenwerte und zeichnest Datenflussdiagramme mit passenden Zeichen und gültigen Pfeilen.
Kurz gesagt
Datenfluss beschreibt die Wege von Daten zwischen Eingabe, Verarbeitung und Ausgabe. Ein Datenflussdiagramm (DFD) stellt solche Wege dar. In einem Datenflussgraphen verbinden Pfeile Anweisungen; verfügbare Daten können deren Ausführung ermöglichen.
Ein System ist hier der Bereich, den du untersuchst, zum Beispiel ein Programm zur Bücherverwaltung. Ein Datenflussdiagramm zeigt, welche Daten in diesen Bereich gelangen, dort verarbeitet werden und ihn verlassen. Ein Datenflussgraph beschreibt dagegen verbundene Anweisungen, die mit verfügbaren Daten arbeiten können. Du lernst beide Darstellungen kennen und hältst ihre Regeln auseinander.
Deine Lernziele
Lege zuerst fest, was zum betrachteten System gehört und was außerhalb liegt. Eine Schnittstelle zur Umwelt stellt einen äußeren Partner dar, der Daten mit dem System austauscht. Das kann ein Mensch oder ein anderes Gerät sein.
Eine Datenquelle liefert Daten von außen in das System. Eine Datensenke empfängt Daten, die das System verlassen. Eine Funktion, auch Prozess genannt, verarbeitet Daten innerhalb des Systems. Sie kann zum Beispiel aus einem Buchtitel einen Leihzettel erstellen.
Ein Pfeil zeigt die Richtung, in der Daten weitergegeben werden. Sein Name sagt, welche Daten übertragen werden. Er beschreibt keine zeitliche Reihenfolge von Arbeitsschritten. Derselbe äußere Partner kann Daten liefern und andere Daten empfangen. Er übernimmt dann je nach Datenrichtung die Rolle einer Datenquelle oder einer Datensenke.
Datenquelle und Datensenke
Beide sind Rollen einer Schnittstelle zur Umwelt: Die Datenquelle liefert Daten an das System, die Datensenke empfängt Daten aus dem System.
Beispiel: Ein erfundenes System erstellt Leihzettel
- 1Ein Schüler außerhalb des Systems sendet einen Buchtitel an das System. Er ist bei diesem Datenfluss die Datenquelle.
- 2Die Funktion „Leihzettel erstellen“ verarbeitet den Buchtitel innerhalb des Systems.
- 3Das System sendet den Leihzettel an ein äußeres Ausgabegerät. Dieses Gerät ist bei diesem Datenfluss die Datensenke.
Teste dich
Ein Datenflussgraph besteht aus Knoten und gerichteten Kanten. Ein Knoten steht für eine Anweisung, etwa das Addieren zweier Zahlen. Eine Kante ist eine Verbindung mit einer Richtung; du kannst sie als Pfeil zeichnen. Sie zeigt eine Datenabhängigkeit: Eine Anweisung benötigt Daten, die über diese Verbindung ankommen.
Die Werte werden als Datenpakete weitergegeben. Ein solches Paket heißt Token, mehrere heißen Tokens. Liegen genügend passende Tokens an den Eingängen eines Knotens vor, kann er feuern. Feuern bedeutet: Der Knoten führt einen Arbeitsschritt aus, verbraucht dafür Eingabetokens und erzeugt neue Ausgabetokens. Diese können nachfolgenden Knoten das Feuern ermöglichen. Ein Knoten muss nicht sofort feuern, sobald genügend Tokens bereitliegen.
Wie viele Tokens nötig sind, hängt von der jeweiligen Anweisung ab. Die allgemeine Regel verlangt deshalb nicht pauschal ein Token an jedem Eingang. Für die Rechenaufgaben dieser Seite vereinbaren wir ein einfaches Modell: Ein Rechenknoten benötigt je einen Zahlenwert pro angegebener Eingabe. Bei einem Rechenschritt verbraucht er diese Tokens und erzeugt genau ein Token mit dem Ergebnis. Ein Additionsknoten mit zwei Eingaben braucht also beide Werte.
Diese Ausführungsregel gehört hier zum Datenflussgraphen. Aus den Pfeilen eines Datenflussdiagramms nach den später erklärten Zeichenregeln von Tom DeMarco liest du keine solche Ausführung ab.
Feuern
Ein Knoten kann einen Arbeitsschritt ausführen, wenn die dafür benötigten Eingabetokens vorliegen. Dabei werden Eingabetokens verbraucht und Ausgabetokens erzeugt.
Beispiel: Eine erfundene Rechenkette verfolgen
- 1Der erste Knoten addiert zwei Eingabewerte. Der zweite verdoppelt seinen einen Eingabewert.
- 2Zu Beginn liegen am ersten Knoten die Werte 6 und 9 vor. Am zweiten liegt noch kein Wert vor.
- 3Der erste Knoten kann feuern. Dabei verbraucht er seine beiden Tokens und berechnet 6 + 9 = 15.
- 4Das neue Token mit dem Wert 15 gelangt zum zweiten Knoten. Dieser kann nun feuern.
- 5Beim Feuern berechnet der zweite Knoten 2 \cdot 15 = 30 und gibt ein neues Token mit dem Wert 30 weiter.
Teste dich
Eine Notation legt fest, welche Zeichen welche Bedeutung haben. Tom DeMarco hat die hier verwendeten Zeichenregeln für Datenflussdiagramme beschrieben. Es gibt auch andere Notationen. Die folgenden Formen gelten für die hier gelernte Darstellung.
Du unterscheidest vier Elementtypen: Datenspeicher, Datenfluss, Funktion und Schnittstelle zur Umwelt. Ein Datenspeicher hält Daten für einen späteren Zugriff bereit. Eine Funktion verarbeitet Daten. Ein Datenfluss überträgt benannte Daten in Pfeilrichtung. Eine Schnittstelle stellt einen Partner außerhalb des betrachteten Systems dar.
Greift eine Funktion lesend auf einen Speicher zu, zeigt der Datenpfeil vom Speicher zur Funktion. Schreibt sie Daten hinein, zeigt der Pfeil von der Funktion zum Speicher. Für Lesen und Schreiben sind zwei getrennte Pfeile oder ein Doppelpfeil möglich. Mit getrennten, benannten Pfeilen kannst du die gelesenen und geschriebenen Daten unterscheiden.
| Elementtyp | Zeichen | Bedeutung |
|---|---|---|
| Datenspeicher | Zwei parallele Linien mit dem Speichernamen dazwischen | Hält Daten für einen späteren Zugriff bereit |
| Datenfluss | Pfeil mit dem Namen der übertragenen Daten | Zeigt, welche Daten in welche Richtung gelangen |
| Funktion oder Prozess | Kreis mit dem Funktionsnamen | Verarbeitet Daten innerhalb des Systems |
| Schnittstelle zur Umwelt | Rechteck mit dem Namen des äußeren Partners | Liefert Daten an das System oder empfängt Daten daraus |
Merke: Datenquelle und Datensenke sind Rollen der Schnittstelle zur Umwelt. Sie sind keine zusätzlichen Elementtypen.
Teste dich
Beim Modellieren erstellst du eine vereinfachte Darstellung eines Systems. Beschreibe zuerst seine Aufgabe und lege seine Grenze fest. Bestimme dann die äußeren Partner, die verarbeitenden Funktionen und die benötigten Datenspeicher. Zeichne die passenden Zeichen und verbinde sie mit Pfeilen. Benenne jeden Pfeil nach den übertragenen Daten.
Prüfe jeden Datenfluss einzeln: Mindestens ein Ende muss eine Funktion, also ein Prozess, sein. Ein Pfeil zwischen einer Schnittstelle und einem Datenspeicher erfüllt diese Regel nicht. Auch zwischen zwei Speichern oder zwei Schnittstellen fehlt ein Prozess. Verbindungen zwischen zwei Prozessen sind dagegen möglich.
Ein solches Datenflussdiagramm zeigt keinen Kontrollfluss. Kontrollfluss legt fest, welcher Arbeitsschritt unter welcher Bedingung als Nächstes ausgeführt wird oder wiederholt werden soll. Entscheidungsregeln wie „Wenn die Liste leer ist, gehe zu Schritt A“ gehören deshalb nicht in das Diagramm. Auch eine Schleife im Sinn einer programmierten Wiederholung wie „Wiederhole diesen Schritt dreimal“ gehört nicht hinein. Eine Funktion darf Daten prüfen; das Diagramm zeigt dabei die benötigten und erzeugten Daten, nicht die Auswahl des nächsten Arbeitsschritts.
Ein zurückführender Datenpfeil ist für sich keine programmierte Schleife. Ein Prozess kann Daten aus einem Speicher lesen und bearbeitete Daten zurückschreiben. Beide Datenpfeile sind zulässig, wenn die Endpunktregel erfüllt ist. Ein kreisförmiger Datenweg allein beschreibt keine Wiederholungsanweisung.
Beispiel: Ein erfundenes Fundmeldesystem zeichnen
- 1Das System soll Fundangaben eines Finders speichern und eine Bestätigung an ein äußeres Fundbüro senden.
- 2Zeichne Rechtecke für „Finder“ und „Fundbüro“, einen Kreis für „Fundmeldung erfassen“ und zwei parallele Linien für den Speicher „Fundliste“.
- 3Zeichne „Fundangaben“ als Pfeil vom Finder zum Prozess „Fundmeldung erfassen“.
- 4Zeichne „Eintrag“ vom Prozess zur Fundliste und „Bestätigung“ vom Prozess zum Fundbüro.
- 5Jeder Pfeil hat den Prozess an einem Ende. Das Diagramm enthält Datenwege und keine Entscheidungs- oder Wiederholungsanweisung.
Merke: Prüfe Datenpfeile und Ablaufanweisungen getrennt: Jeder Datenpfeil braucht einen Prozess an mindestens einem Ende. Entscheidungen und programmierte Wiederholungen werden im DFD nicht dargestellt.
Teste dich
Alles auf einen Blick
Datenfluss
Eine Datenquelle liefert Daten von außen, eine Datensenke empfängt Daten aus dem System.
Ein Knoten des Datenflussgraphen kann arbeiten, wenn genügend passende Eingabetokens vorliegen.
Nach Tom DeMarco gibt es Datenspeicher, Datenfluss, Funktion und Schnittstelle zur Umwelt.
Jeder Datenpfeil braucht an mindestens einem Ende einen Prozess.
Ein DFD enthält keine Entscheidungsregeln oder programmierten Wiederholungen; zurückführende Datenwege sind möglich.
Ein Diagramm für ein erfundenes Rezeptheft zeichnen
- 1Aufgabe: Ein Koch sendet einen Rezepttext. Das System soll daraus einen Eintrag erstellen und diesen im Rezeptheft speichern.
- 2Lege die Grenze fest: Der Koch ist außerhalb des Systems. Die Verarbeitung und der Datenspeicher gehören zum System.
- 3Zeichne ein Rechteck „Koch“, einen Kreis „Eintrag erstellen“ und zwei parallele Linien mit dem Namen „Rezeptheft“ dazwischen.
- 4Zeichne den Pfeil „Rezepttext“ vom Koch zum Prozess „Eintrag erstellen“.
- 5Zeichne den Pfeil „Rezepteintrag“ vom Prozess zum Speicher „Rezeptheft“.
- 6Prüfe das Ergebnis: Beide Datenpfeile haben einen Prozess an einem Ende. Es gibt keine Entscheidungsregel und keine Anweisung für eine programmierte Wiederholung.
Fehler finden
Fehler in Zeile 3Ein zurückführender Datenweg ist für sich keine programmierte Schleife. Richtig: Dieser zurückführende Datenweg ist ohne Wiederholungsanweisung zulässig.
Lückentext
Ein äußerer Partner sendet eine Anfrage in das System und empfängt bei diesem Pfeil keine Daten. Er ist dabei eine . Ein Additionsknoten verbraucht in unserem Rechenmodell die Werte 7 und 8. Sein neuer Ausgangswert ist . Zwei parallele Linien mit einem Namen dazwischen kennzeichnen in der hier gelernten Darstellung einen .