# Diagramme de flux de données

Le Data Flow Diagram (DFD ; en français, diagramme de flux de données) est un type de représentation graphique du flux de données à travers un système d’information. Cet outil est souvent utilisé comme étape préliminaire dans la conception d’un système afin de créer un aperçu de ce système d’information. De plus, il est également utilisé pour visualiser le traitement de données (structured design).
Il montre quel type d’informations entre (input) ou sort (output) du système, d’où elles proviennent et où elles sont stockées. Cependant, il n’indique ni la temporalité des transmissions de données, ni l’ordre dans lequel les données circulent.

## Histoire

Larry Constantine fut le premier à développer les diagrammes de flux de données, dans le cadre de la conception structurée dont le principe est de rationaliser les échanges d'informations entre différents modules d'un système. Il s'est basé sur le modèle des graphes de programmes de Martin et Estrin qui appliquent les principes de la théorie des graphes et de la recherche opérationnelle à l'analyse de programmes.
À partir de la seconde moitié des années 1970, les diagrammes de flux de données (DFD) ont été popularisés par les promoteurs de conception structurée, tels que Edward Yourdon, Tom DeMarco, Chris Gane and Trish Sarson qui enrichissent les diagrammes de flux avec des techniques tels que dictionnaires de données décrivant les flux, ou une formalisation de la décomposition hiérarchique des traitements.
Les diagrammes de flux ont ainsi été très utilisés afin de visualiser les principales étapes et les données concernées par l’utilisation d’un logiciel. Aujourd'hui, ils servent à montrer les flux de données au sein d’un système d'information, celui-ci s’apparente le plus souvent au système informatique mis en place. En effet, le DFD est très utile afin de mieux visualiser les flux de données majeurs (décision à prendre avec certitude) ou pour développer de nouvelles structures du "système d’information". Ils ont été intégrés à de nombreuses méthodes de développement de logiciels et sont par exemple l'une des trois composantes essentielles de SSADM et sont une composante de MERISE (MFC, modèle de flux conceptuel).
Ils sont aujourd'hui utilisés dans la modélisation de "process", au sens de "métier". Dans ce contexte le "process" est une activité qui est déclenchée par l'arrivée de flux d'informations (dossiers, fichiers, mèls...) et qui produira, sous certaines conditions, d'autres flux d'informations "consommés" par d'autres "process".

## La théorie

Le modèle de flux de données (DFD) aussi appelé modèle de flux conceptuels (MFC) détaille les activités en domaine d’étude. Ce modèle représente les flux internes au domaine, contrairement au modèle de contexte, qui fait aussi partie des diagrammes de flux, mais qui ne représente que les flux extérieurs au domaine. Le modèle doit avant tout permettre de répondre à la question : « Que fait le système ? »
La conception des DFD se fait par le biais d’une approche descendante du système d’information. C’est-à-dire que l’on procède à des “zooms” successifs (en partant du niveau 1) sur le modèle étudié pour élaborer des modèles de plus en plus détaillés qui permettront d’avoir une cartographie précise du système d’information. Avec ce modèle, le domaine d’étude est éclaté en activités, et au fur et à mesure des niveaux, les activités sont éclatées en plusieurs activités. Effectivement, la décomposition d’un domaine ou d’une activité en plusieurs activités peut faire apparaître de nouveaux flux dus à l’échange d’informations entre activités ou à la décomposition d’un flux présent au niveau n en plusieurs flux au niveau n+1. Cette décomposition permet de désagréger les flux afin d’avoir une idée plus précise du fonctionnement du système d’information.

## La conception

Il existe deux principaux types de diagramme de flux, le diagramme de contexte et le diagramme de flux de données.

### Diagramme de contexte (Niveau 0)

Pour concevoir un diagramme de flux de données, il faut commencer par étudier le modèle de contexte. C'est-à-dire représenter les interactions entre le domaine d'étude et son environnement. Le diagramme de contexte permet de visionner les interfaces entre le système sous enquête et le système des entités externes avec lesquels il est en interaction. Il représente le niveau 0 dans la conception du diagramme de flux de données. Le diagramme de contexte ne prend pas en compte les relations entre les activités au sein du domaine d'étude. Cependant, il prend en compte les relations entre le domaine d'étude et l'éventuel domaine connexe et les acteurs externes.

### Diagramme de flux de données (Niveau 1)

Pour construire un DFD de niveau 1, il faut que son concepteur identifie les activités qui composent le domaine d'étude, comme un ensemble d’activités participant à une même finalité. Le diagramme de niveau 1 représente l'ensemble du système de l'enquête du domaine d'étude. Le modèle de niveau 1 se décompose en plusieurs modèles de niveau 2 et ainsi de suite. Cette décomposition cesse lorsque l’activité n’a plus besoin d'attendre des ressources complémentaires extérieures afin de traiter ces informations.
Il existe différentes façons de concevoir les diagrammes de flux de données (DFD), Yourdon (en) & Coad (en) et Gane & Sarson sont les premiers à définir les différentes représentations visuelles pour les acteurs externes, les domaines d’études, les activités et les flux de données.

## À quoi sert-il ?

Le diagramme de flux de données permet d’expliquer le fonctionnement d’une activité et ainsi repérer les fonctions à améliorer. Dans un premier temps, l’analyse du diagramme de flux de données nous offre la possibilité de trouver d’autres acteurs et d’autres flux qui sont nécessaires au fonctionnement de l’activité. Ensuite, on va détecter les incohérences et les dysfonctionnements dans la circulation de l’information. Les diagrammes de flux de données peuvent être utilisés à la fois dans la phase d'analyse et de conception du cycle de développement (logiciel). Les anciens diagrammes de flux de données peuvent être comparés aux nouveaux afin d'implémenter un système plus efficace. Les diagrammes de flux de données peuvent être utilisés pour fournir à l'utilisateur final une idée de la localisation des données, de l'impact qu'elles ont sur la structure.