Che cosa sono i diagrammi di flusso dati (DFD)?
I diagrammi di flusso dati (DFD) tracciano il flusso di informazioni per qualsiasi processo.
I DFD possono spaziare da semplici panoramiche del processo, anche disegnate a mano, a DFD approfonditi e multilivello che scavano progressivamente in profondità, attraverso raffinamenti successivi, come vengono gestite e collegate le informazioni. Possono essere utilizzati per analizzare un sistema esistente o per modellarne uno nuovo. Nati per agevolare la progettazione del software vengono ampiamente utilizzati anche in ambito economico, aziendale e negli ambienti accademici.
I diagrammi di flusso dei dati sono stati resi popolari alla fine degli anni ’70 dai pionieri dell’informatica Ed Yourdon e Larry Constantine. Quando il concetto di progettazione strutturata è decollato nel campo dell’ingegneria del software il metodo dei DFD è decollato con esso.
Come tutte le visualizzazioni grafiche i diagrammi di flusso dati DFD ci spiegano visivamente concetti difficili da spiegare a parole.
Perché sono così efficienti i DFD?
Queste rappresentazioni sono molto efficaci poiché riescono a essere comprensibili a tutti i livelli di un’organizzazione, dall’analista allo sviluppatore, dal consulente all’amministratore delegato.
I DFD sono in grado di aiutare a comprendere o a progettare la struttura e le funzioni di sistemi anche molto complessi, sia logici che fisici. Per questo motivo esistono due tipi di DFD:
- DFD Logici. I diagrammi logici mostrano il processo teorico di spostamento delle informazioni attraverso un sistema, ad esempio da dove provengono i dati, dove vanno, come cambiano e dove vanno a finire. Questa metodologia può essere utile quando si cerca di mappare, di aggiungere nuove funzionalità o modificare i processi aziendali esistenti (As-Is).
- DFD Fisici. I diagrammi fisici mostrano il processo pratico di spostamento delle informazioni attraverso un sistema, ad esempio il modo in cui il software, l’hardware, i file, i dipendenti e i clienti specifici del sistema influenzano il flusso di informazioni.
È possibile utilizzare diagrammi logici o fisici per descrivere lo stesso flusso di informazioni oppure è possibile utilizzarli insieme per comprendere un processo o un sistema a un livello più granulare. Un DFD logico può essere utilizzato come base per creare un nuovo DFD fisico che rappresenti l’implementazione fisica dei processi aziendali. In questo modo, il DFD fisico diventa il metodo per fornire all’azienda la rigenerazione di un processo attraverso l’applicazione o la creazione di una nuova tecnologia già esistente o personalizzata.
In che contesto possono essere utilizzati i DFD?
I diagrammi di flusso dati (DFD) possono esser utilizzati per l’analisi o la modellazione di vari tipi di sistemi informativi in diversi campi come:
DFD nell’analisi aziendale: gli analisti aziendali utilizzano i DFD per analizzare il flusso informativo tra i sistemi aziendali esistenti, mappare le fonti, le connessioni, i legami e le varie integrazioni tra aree interne ed esterne.
DFD nella reingegnerizzazione dei processi aziendali: i DFD possono essere utilizzati per modellare un flusso di dati migliore di un processo aziendale. In questo caso i DFD possono essere integrati con diagrammi BPM (Business Process Managemnet) creando di fatto metodologie ibride in modo da progettare o ridisegnare processi per ridurre i costi operativi, migliorare il servizio ai clienti o comprendere meglio le dinamiche del mercato e dei concorrenti.
DFD nell’ingegneria del software e di prodotti digitali: I DFD possono essere utilizzati per il design, l’esplorazione e la progettazione di alto livello di sistemi software e digitali. Possono essere utilizzati per analizzare e documentare un sistema esistente o per modellarne uno nuovo e possono aiutare a identificare le entità logiche. Possono essere utilizzati per identificare i processi e le attività di ogni entità, la tipologia e la direzione dei flussi delle informazioni, le fonti di input e gli output delle informazioni.
DFD nello sviluppo agile: possono essere uno strumento semplice ma potente per la comunicazione e la collaborazione in contesti di sviluppo agile, poiché permettono di comprendere velocemente i requisiti aziendali e tecnici e pianificare i passaggi successivi.
DFD & Analytcs : qualsiasi sistema o processo può essere analizzato in dettaglio progressivo per migliorarlo, sia su base tecnica che non tecnica. I DFD aiutano a comprendere i flussi di dati, le trasformazioni e le interazioni tra i componenti, consentendo di delineare un’architettura ottimale per il sistema di Analytics. Sfruttando il potere dei DFD nella fase di progettazione, si può creare un sistema di Analytics robusto, efficiente e in grado di fornire intuizioni preziose prima della prototipazione e l’implementazione.
Attraverso i DFD, si possono definire in modo dettagliato le funzionalità e i requisiti del sistema di Analytics. Si possono identificare quali dati devono essere catturati, da quali fonti, come vengono elaborati e come elaborarli e analizzarli, nonché identificare gli utenti finali e i loro obiettivi
Inoltre, i DFD possono essere utilizzati per identificare i punti critici del flusso dei dati e le possibili aree di ottimizzazione. Si possono individuare i colli di bottiglia, le duplicazioni di dati o altre inefficienze che potrebbero influire sulla qualità e sulla velocità dell’analisi. Utilizzando i DFD, si possono iterare e raffinare la progettazione del sistema di Analytics, in modo da creare scenari diversi e alternativi.
Quali sono i simboli dei DFD?
I simboli dei diagrammi di flusso dati sono notazioni standardizzate, come rettangoli, cerchi, frecce ed etichette di testo breve, che descrivono la direzione del flusso di dati di un sistema o processo, input di dati, output di dati, punti di archiviazione dei dati e i suoi vari sottoprocessi. Di seguito vengono rappresentate le notazioni più comuni:

Descrizione:
- Entità esterne: Le entità esterne rappresentano sistemi, organizzazioni o persone esterne al sistema in esame. Sono rappresentate da cerchi aperti. Le entità esterne interagiscono con il sistema, fornendo o ricevendo dati. Ad esempio, un cliente o un fornitore potrebbero essere considerati entità esterne in un sistema di gestione delle vendite.
- Processi: I processi indicano le azioni che vengono eseguite sui dati all’interno del sistema. Sono rappresentati da quadrati con i bordi arrotondati. Ogni processo rappresenta un’attività specifica, come l’elaborazione dei dati, la trasformazione o l’archiviazione. Ad esempio, un processo potrebbe essere “Calcola il totale dell’ordine” in un sistema di gestione delle vendite.
- Archivio dati: Gli archivi di dati rappresentano la memorizzazione dei dati all’interno del sistema. Sono rappresentati da rettangoli. Gli archivi di dati indicano il punto in cui i dati vengono archiviati e da cui possono essere recuperati. Possono rappresentare database, file o qualsiasi altra forma di memorizzazione dei dati. Ad esempio, un archivio dati potrebbe contenere informazioni sugli ordini dei clienti in un sistema di gestione delle vendite.
- Flussi: I flussi rappresentano il movimento dei dati all’interno del sistema. Sono rappresentati da frecce che collegano le entità esterne, i processi e gli archivi di dati. I flussi di dati indicano il passaggio delle informazioni da un punto all’altro. Possono rappresentare il flusso di dati in entrata o in uscita da un processo o la comunicazione tra diverse componenti del sistema.
Queste figure nei DFD sono collegate tra loro attraverso i flussi di dati, consentendo di visualizzare il flusso delle informazioni all’interno del sistema. Rappresentano i componenti essenziali per comprendere come i dati vengono elaborati, trasformati e memorizzati all’interno di un sistema o processo specifico.
Quale flusso di lavoro utilizzare per la creazione dei DFD?
Uno dei possibili flussi da seguire per la creazione di DFD, che personalmente ritengo più efficace è il seguente:
- Iniziare con la fase di progettazione iniziale: Identificare e identificare i casi d’uso, i requisiti, gli obiettivi e l’ambito del sistema.
- Selezionare un sistema o un processo: In caso di sistemi o processi complessi, dividere preferibilmente il sistema in parti più piccole in modo da facilitare la comprensione e diluire la complessità, in seguito scegliere un caso d’uso o un processo specifico da analizzare.
- Disegnare un DFD di contesto: Crea un DFD di livello 0 che rappresenti il sistema o il processo principale, mappare tutte le entità esterne individuando i flussi di informazioni principali da e verso il sistema generale, ricordarsi sempre di specificare la direzione.
- Identificare per ogni entità i processi principali in base ai macro-requisiti funzionale e identificare i flussi logici.
- Espandere i processi in DFD di livello 1: Utilizzando il DFD di livello 0 come base, approfondire le connessioni tra i processi e mappare i flussi di dati in modo più dettagliato.
- Raffinare per step e ripetere se necessario: Ripetere il passaggio 4 creando ulteriori livelli di DFD (ad esempio, DFD di livello 2, 3, ecc.) per rappresentare dettagli più specifici.
In quanti livelli possono essere divisi i DFD?
I diagrammi di flusso dati (DFD) possono essere scomposti in diversi livelli, possono rappresentare semplici panoramiche di contesto o rappresentazioni più complesse e dettagliate. Di seguito si riporta una possibile scomposizione da effettuare attraverso raffinamenti successivi.
Livello 0, chiamato diagramma di contesto, rappresenta una panoramica ad alto livello del flusso di informazioni attraverso un sistema o un processo. Al livello 0, ci concentriamo sui processi o sulle funzioni di sistema di alto livello e sulle origini dei dati che fluiscono verso o da essi. Il diagramma di contesto è progettato per essere una panoramica semplice e diretta di un processo o sistema. Generalmente per nuovi progetti si inizia sempre con il Livello 0 in modo da contestualizzare il sistema.
Livello 1, rappresenta una decomposizione del Livello 0 e ha lo scopo di identificare i processi e flussi di dati principali di ogni entità. Anche se i DFD di livello 1 offrono ancora una panoramica ampia di un sistema o processo, sono più dettagliati rispetto al livello 0. In questo caso; vengono identificati i processi principali delle entità:
- il singolo nodo del processo può essere suddiviso in sottoprocessi;
- vengono individuati gli archivi delle informazioni;
- l’entità del sistema svanisce, lasciando solamente i processi a essa collegati;
- i processi ereditano il colore dell’entità collegata.
Livello 2, questo livello di DFD approfondisce ulteriormente i dettagli suddividendo ogni processo del livello 1 in sottoprocessi più granulari. Questo ci permette di ottenere una visione più approfondita del flusso di informazioni all’interno del sistema.
Livello 3 e i successivi, richiedono una grande quantità di dettagli. Di solito, si preferisce mantenere i DFD a livelli inferiori per mantenere la chiarezza e la facilità di comprensione e raffinamenti un processo specifico in una rappresentazione distinta.
Esempio di progettazione di un DFD
Di seguito si riporta un’introduzione di come utilizzare i DFD sulla base di un caso d’uso di esempio.
Caso d’uso:
Design di un sistema di gestione delle prenotazioni di un’attività di noleggio auto.
Attori:
- Cliente (Entità esterna)
- Venditore (Entità esterna)
- Sistema di gestione delle prenotazioni (Sistema)
Descrizione:
Il caso d’uso riguarda l’implementazione di un sistema per la gestione delle prenotazioni di un’attività di noleggio auto. Nello specifico di un sistema per la gestione delle prenotazioni, del controllo della disponibilità, della fatturazione, dei pagamenti e del fabbisogno operativo di auto.
Il cliente effettua la prenotazione di un noleggio dopo la registrazione e l’autenticazione nel sistema. Il sistema gestisce in automatico le prenotazioni. Il venditore visualizza una dashboard per monitorare i pagamenti, generare report e ricevere previsioni sulle prenotazioni future. Il sistema interpreta le domande del venditore in linguaggio naturale e fornisce automaticamente un report di gestione.
Fonte: Lucidchart
Funzionalità principali:
- Il cliente effettua prenotazioni di veicoli tramite il sistema.
- Il Venditore gestisce il controllo dell’inventario, e verifica la disponibilità dei veicoli per le prenotazioni.
- Il Venditore visualizza, conferma e gestisce le prenotazioni effettuate dai clienti.
- Il Cliente effettua il pagamento delle prenotazioni attraverso il sistema.
- Il Venditore gestisce il controllo dell’inventario e verifica la disponibilità dei veicoli per le prenotazioni.
- Il Venditore monitora lo stato dei pagamenti effettuati dai clienti.
- Il Venditore visualizza una dashboard con il dettaglio e l’andamento delle prenotazioni e dei pagamenti tramite grafici, KPI e report.
- Il sistema effettua previsioni sulle prenotazioni future per gestire il fabbisogno di auto.
- Il venditore formula domande in linguaggio naturale.
- Il sistema interpreta automaticamente le richieste e cerca di fornire un report corrispondente.
Precondizioni:
- Il cliente si registra nel sistema di gestione delle prenotazioni e si autentica con successo.
- Il venditore accede al sistema di gestione delle prenotazioni come utente autorizzato.
Postcondizioni:
- Il venditore visualizza una dashboard con il dettaglio e l’andamento delle prenotazioni e dei pagamenti, attraverso grafici, KPI e report.
- Il venditore riceve previsioni sulle prenotazioni future per gestire il fabbisogno di auto.
- Il sistema interpreta le domande del venditore in linguaggio naturale e fornisce automaticamente un report.
****
DFD Livello 0

Questo DFD ci permette di capire il contesto del sistema
DFD Livello 1

Questo DFD identifica i processi e i flussi dei dati principali delle tre diverse entità:
- Cliente;
- Sistema;
- Venditore.
DFD Livello 2

Questo DFD raffina ulteriormente i processi e i flussi del sistema dando una panoramica generale e completa del design del sistema di prenotazione come descritto del caso d’uso.
Inizia a sperimentare e a ridisegnare il flusso dati del tuo modello di business o della tua applicazione digitale.
L’utilizzo dei Diagrammi di Flusso Dati (DFD) nell’introduzione alla modellazione funzionale offre un potente strumento per comprendere, progettare e ottimizzare sistemi complessi. I DFD tracciano il flusso di informazioni attraverso i processi e le entità di un sistema, consentendo una rappresentazione visiva chiara e strutturata.
I DFD possono essere utilizzati per analizzare e modellare una vasta gamma di sistemi informativi, come l’analisi aziendale, la reingegnerizzazione dei processi aziendali, l’ingegneria del software e lo sviluppo agile. Inoltre, la combinazione dei DFD con l’Analytics consente di progettare sistemi di Analytics efficaci, in grado di sfruttare al meglio i dati per ottenere intuizioni preziose.
