Data Flow Diagram

Da Wikipedia, l'enciclopedia libera.

Il Data Flow Diagram (abbreviato in DFD) è un tipo di diagramma definito nel 1978 da Tom DeMarco nel testo Structured Analysis and Systems Specification per aiutare nella definizione delle specifiche.

È una notazione grafica molto usata per i sistemi informativi e per la descrizione del flusso di dati in quanto permette di descrivere un sistema per livelli di astrazione decrescenti con una notazione di specifica molto "intuitiva".

Attraverso i Data Flow Diagram si definiscono soprattutto come fluiscono (e vengono elaborate) le informazioni all’interno del sistema, quindi l'oggetto principale è il flusso delle informazioni o, per meglio dire, dei dati. Motivo per il quale diventa fondamentale capire dove sono immagazzinati i dati, da che fonte provengono, su quale fonte arrivano, quali componenti del sistema li elaborano.

Notazioni Data Flow Diagram

Componenti[modifica | modifica sorgente]

Le componenti di questo tipo di diagramma sono:

  • Funzioni, rappresentate da bolle;
  • Flussi di dati, rappresentati da frecce;
  • Archivi di dati, rappresentati da scatole aperte;
  • Agenti esterni o Input/Output di dati, rappresentati da scatole chiuse.

Funzioni[modifica | modifica sorgente]

Le funzioni rappresentano unità di elaborazione dei dati:

  • Trasformano i dati in ingresso in quelli in uscita.

Flusso di dati[modifica | modifica sorgente]

Le frecce collegano i diversi componenti di un diagramma tra loro:

  • Rappresentano i dati gestiti dal sistema;
  • Gli archivi e gli agenti esterni NON possono essere collegati tra loro.

Archivi[modifica | modifica sorgente]

Gli archivi sono dei depositi permanenti di informazione:

  • Possono essere basati su qualunque tecnologia;
  • I dati che entrano in un archivio vengono scritti;
  • I dati che escono dall’archivio sono letti (ma non cancellati).

Agenti esterni[modifica | modifica sorgente]

Gli Agenti esterni rappresentano delle entità esterne al sistema:

  • Non sono soggette ad ulteriore modellazione;
  • Sono le sorgenti e le destinazioni dei dati del sistema.

Modellazione[modifica | modifica sorgente]

Un generico sistema è sempre rappresentabile nel seguente modo:

DataFlowDiagram Esempio1.png

Se gli ingressi e/o le uscite sono molteplici si introducono nuovi flussi.

Questo tipo di rappresentazione ha un livello di astrazione elevato e individua solo l’interfaccia tra il sistema e il mondo esterno per cui vanno inseriti altri dettagli raffinando le funzioni. Ogni funzione, infatti, è a sua volta specificabile mediante un Data Flow Diagram per cui è possibile ottenere diversi livelli con sempre maggiore definizione.

Criteri di stesura[modifica | modifica sorgente]

Nella stesura si ignora l'inizializzazione del sistema, la gestione degli errori e la terminazione, il sistema si immagina come "up & running". Si ignorano anche le sincronizzazioni ed il flusso di controllo tra processi. Individuare sempre le entrate e le uscite di un diagramma.

Qualora i dati gestiti fossero particolarmente strutturati, si affianca al Data Flow Diagram un sistema complementare.

Limiti[modifica | modifica sorgente]

Questa notazione, quindi, presenta dei limiti consistenti:

  • Semantica: i simboli non sono sufficientemente chiari e i nomi vengono scelti dall’utente;
  • Controllo: gli aspetti di controllo non sono definiti dal modello e, quindi, anche la sequenza temporale è poco chiara.

Quindi il Data Flow Diagram è adatto ad una descrizione rapida e intuitiva per cui non è una notazione operazionale proprio perché alcuni aspetti non sono chiariti.

Per questo motivo si parla di notazione semiformale perché la sintassi è precisa, ma la semantica non lo è.

Sono stati progettati diversi metodi per rimediare a queste difficoltà che possono essere classificati nel seguente modo:

  • Usare una notazione complementare per colmare le lacune del data flow diagram;
  • Migliorare il modello in modo da completare la versione tradizionale.

Altri progetti[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]

Bibliografia[modifica | modifica sorgente]

  • T. DeMarco, Structured Analysis and Systems Specification, Yourdon Press, NY, 1978.
  • E. Yourdon and L. Constantine, Structural Design. Prentice-Hall, Englewood Cliffs, NJ, 1979.
  • C. Gane and T. Sarson, Structured Systems Analysis, Prentice-Hall, Sydney, 1979.