Datenflussdiagramme wurden bereits vor über 40 Jahren im Rahmen der damals populären strukturierten Analyse definiert (z.B. von Tom DeMarco). Die strukturierte Analyse nutzt Datenflussdiagramme, um Business Requirements zu analysieren und in Software (SW) abzubilden.
Mit dem Aufkommen der Objektorientierten Analyse (OOA) und der dort verwendeten Modellierungssprache UML, rückten Datenflussdiagramme in den Hintergrund. Dies nicht zuletzt deshalb, weil UML keine reinen Datenflussdiagramme kennt. Meist bekommt man dann den Ratschlag, doch einfach ein UML Aktivitätsdiagramm zu verwenden. Dieses zeigt aber primär den Kontrollfluss einer SW. Zusätzlich ermöglicht es noch Datenflüsse anzudeuten. Diese Vermischung von Kontroll- und Datenfluss kann jedoch bei der Analyse und beim Design eines neuen Systems den Blick auf das Wesentliche verstellen.
Reine Datenflussdiagramme haben in der frühen Phase des Systemdesigns viele Vorteile:
Datenflussdiagramme haben sich in den letzten 40 Jahren kaum weiterentwickelt. Insbesondere hat sich keine einheitliche Notation durchgesetzt. Die grundlegenden Strukturen eines Datenflussdiagramms sind jedoch so einfach, dass Datenflussdiagramme meist ohne weitere Erläuterung verstanden werden. Praxistipp: Fügen Sie aber trotzdem eine Legende und / oder ein Data-Dictionary zu ihrem Diagramm hinzu, damit kein Interpretationsspielraum besteht.
Datenflussdiagramme bestehen aus folgenden Elementen:
Einige gängige Notationen können der folgenden Tabelle entnommen werden:
Datenflussdiagramme können aber noch viel mehr. Durch die Verwendung von Rahmen und Hintergründen in verschiedenen Farben ist es möglich, eine Vielzahl von Informationen darzustellen, die für Ihre spezifische Systemarchitektur zentral sind. So können Funktions- und Speicherblöcke z.B. zu Systemkomponenten zugeordnet werden. In Frage kommen insbesondere folgende Kategorien:
Das folgende Datenflussdiagramm zeigt einen einfachen Daten-Logger, der aus einem Hardware-Teil und einem Software-Teil besteht. Der Interrupt-Handler ist getrennt vom Main-Loop dargestellt.
Besonders vorteilhaft sind Datenflussdiagramme, wenn analoge oder digitale Signalverarbeitung in Ihrem System ein zentraler Aspekt ist. Solche Systeme bestehen meist aus einer grossen Anzahl unabhängiger Verarbeitungsschritte, die in mehrere parallele Verarbeitungspfade aufgeteilt sind. Diese Strukturen lassen sich auf leicht verständliche Art in einem Datenflussdiagramm abbilden.
Viele Standards im Bereich der funktionalen Sicherheit empfehlen, dass eine SW-Architektur mit Hilfe einer Datenflussanalyse definiert und / oder im Rahmen einer Software-Sicherheitsanalyse verifiziert wird. Unter anderem empfehlen folgende Standards dieses Vorgehen: ISO 26262-6, DO 178C, IEC 61508, ISO 13849, EN 50128. Systematische Sicherheitsrisiken können so schon sehr früh identifiziert und das geplante System auch gleich vereinfacht und optimiert werden. Eine Datenflussanalyse erfolgt anhand eines Datenflussdiagramms.
Datenflussdiagramme vereinfachen die Durchführung einer TARA (threat analysis / risk analysis) mit technischen und nicht-technischen Stakeholdern gleich zu Beginn eines Projekts. Es dient dabei als Basis für die Modellierung und Bewertung von möglichen Cyber-Sicherheitsbedrohungen. Das Datenflussdiagramm wird häufig mit Trust-Boundaries erweitert, um die besonders schützenswerten Güter zu Kennzeichnen. Ein Datenflussdiagramm kann schon in einer sehr frühen Phase des Produktlebenszyklus gezeichnet werden, wenn über die tatsächliche Implementation noch nichts bekannt ist.
Datenflussdiagramme sind einfach zu lesen, fördern das Verständnis der Software-Architektur und erleichtern die Kommunikation mit allen involvierten Personen. Schwachstellen und Fehler in Ihrem System lassen sich schon früh entdecken. Das Resultat ist eine bessere Systemarchitektur und eine verringerte Anzahl systematischer Fehler. Datenflussdiagramme sind also sehr effektiv. Es lohnt sich deshalb den vergleichsweise bescheidenen Aufwand für die Erstellung auf sich zu nehmen. Ein Datenflussdiagramm ist je nach Komplexität in ein bis zwei Tagen erstellt. Die Suche nach einem systematischen Fehler kann hingegen Wochen dauern und enormen Reputationsschaden anrichten.
Nutzen Sie unsere SolceptClinic und senden Sie mir Ihre konkreten Fragen zum Thema Systemarchitektur. Und das Beste ist: diese erste time-boxed Konsultation von 30 Minuten kostet Sie nichts.
Daniel Megnet
Haben Sie zusätzliche Fragen? Haben Sie eine andere Meinung? Wenn ja, mailen Sie mir oder kommentieren Sie Ihre Gedanken unten!
Projekte? Ideen? Fragen? Machen wir einen kostenlosen Erst-Workshop!
Keine Kommentare