DIAGRAMMI DI FLUSSO
DEI DATI
Introduzione ed esempio
Sistemi informativi per
la multimedialità
Diagrammi di flusso dei dati
DIAGRAMMI DI FLUSSO DI DATI
L'attenzione è rivolta soprattutto alla componente funzionale,
mentre i dati giocano un ruolo subordinato.
Caratteristiche:
• definizione delle interazioni tra il sistema (il dominio applicativo
di interesse) e il mondo esterno
• scomposizione gerarchica del sistema in processi (funzioni,
attività nel dominio applicativo) collegati tramite flussi di dati
• descrizione con l’uso del diagramma di flusso di dati - "Data
Flow Diagram"
Sistemi informativi per
Diagrammi di flusso dei dati
2
Elementi di base dei DFD
Si basano su una notazione grafica che mostra il flusso dei dati e le
trasformazioni applicate ad essi dall’ingresso all’uscita del sistema;
processo
(process)
(data flow)
flusso di dati
agente esterno
(external agent)
ciascun elemento è identificato da un nome (etichetta)
deposito
(data store)
)
esempio:
cliente
Sistemi informativi per
ordine del
cliente
acquisisci
ordine
ordine
acquisito
Diagrammi di flusso dei dati
fornitore
3
Processo (Funzioni / Trasformazioni)
E' un'attività di trasformazione, che acquisisce dati in input e li
trasforma in dati di output.
Ogni processo:
• deve essere collegato ad almeno un flusso di dati in input e ad
almeno uno in output
• i flussi in output devono essere diversi rispetto ai flussi di input
(in quanto oggetto di una trasformazione)
input 1
processo
output 1
input 2
Sistemi informativi per
Diagrammi di flusso dei dati
4
Flusso di dati
Indica un flusso di materiale (dati) omogeneo:
• ha una direzione
• connette due elementi del sistema
• uno dei due elementi è necessariamente un processo o un
agente esterno che produce il flusso o lo acquisisce
emetti
fattura
Sistemi informativi per
fatture
Diagrammi di flusso dei dati
cliente
5
Deposito (data store)
è un archivio, di dati permanenti, a cui i processi del sistema
possono accedere, in lettura e/o in aggiornamento
• è, per definizione, statico: mentre il flusso trasporta i dati,
che sono quindi "in movimento", nel deposito i dati sono
messi "a riposo", disponibili per essere trattati dai processi
acquisizio
ne ordini
ordini
ricevuti
Sistemi informativi per
ordini
Diagrammi di flusso dei dati
6
Agente esterno
è un elemento/sistema esterno, con il quale il sistema da
analizzare scambia informazioni in input e/o in output
(sorgente o pozzo di flussi)
• può essere una persona, un'organizzazione, un sistema hardware /
software, un oggetto qualsiasi
• come ogni sistema, potrebbe essere analizzato, ma:
– l'agente esterno è da considerarsi come una "scatola nera", della quale non
ci interessano le caratteristiche interne
– ci interessano solo gli scambi di dati (flussi) tra l'agente esterno ed il
sistema da analizzare
cliente
Sistemi informativi per
sistema
contabilità
generale
sensore
Diagrammi di flusso dei dati
banca
7
Processo: tipologie di trasformazione
listino prezzi
emetti
ricevuta
ricevuta
fiscale
1) produzione in output
di dati diversi rispetto a
quelli di input
ordini
listino prezzi
aggiorna
listino
sconto o
maggiorazione
Sistemi informativi per
listino prezzi
aggiornato
2) produzione in output
di dati della medesima
tipologia di quelli di
input, ma con valori
diversi
Diagrammi di flusso dei dati
8
Processo: tipologie di trasformazione
parole da
controllare
parole corrette
controllo
ortografia
3) partizionamento di un
flusso in input
dizionario
parole errate
ordini via
telefono
accettazio
ne ordini
ordini ricevuti
4) unione di più flussi in
input
ordini via
posta
Sistemi informativi per
Diagrammi di flusso dei dati
9
Composizione del flusso di dati
il flusso può riferirsi a:
• dati organizzati in strutture (es. ordini memorizzati in un
archivio) o non strutturati (es. reclami, risposte)
• zero, una o più occorrenze (es. dal deposito ordini possono
essere letti da zero a molti ordini) di un dato
reclami
ordini
Sistemi informativi per
ordini
ricevuti
tratta
reclami
Diagrammi di flusso dei dati
risposte
10
Ruolo del deposito
Consente la connessione “asincrona” tra due processi
acquisizio
ne ordini
ordini
ricevuti
ordini
ricevuti
evasione
ordini
ordini
il processo che accede ai dati contenuti nel deposito (es. evasione ordini) può iniziare la propria attività in
un momento successivo al termine dell'attività del processo che li memorizza (es. acquisizione ordini)
Quando la connessione tra processi avviene senza il tramite di un
deposito, i processi sono "sincroni":
acquisizio
ne ordini
ordini
ricevuti
evasione
ordini
il secondo processo inizia la propria attività immediatamente al termine dell'attività del primo
Sistemi informativi per
Diagrammi di flusso dei dati
11
Deposito e flussi di dati
• i flussi di dati che entrano in un deposito lo aggiornano, mentre
quelli che ne escono lo leggono ordini via posta
– flussi diversi possono
aggiornare e/o leggere il
medesimo deposito:
ciascuno di essi
corrisponde ad un
determinato sottoinsieme
del deposito
– è anche lecito che il
medesimo flusso aggiorni
e legga il deposito
ordini da evadere
ordini
ordini già evasi
ordini via telefono
contratti
contratti
contratti
stipulati
stipulati
i flussi in input al deposito, e in output dal deposito, aggiornano o
leggono un sottoinsieme dei dati contenuti nel deposito, non
necessariamente l'intero deposito:
Sistemi informativi per
Diagrammi di flusso dei dati
12
Ruolo degli agenti esterni
• l'individuazione degli agenti esterni è la base per la definizione del
contesto del sistema
• gli agenti esterni corrispondono alle particolari entità del "mondo esterno"
con cui il sistema è in relazione
• definire gli agenti esterni, e i flussi di dati che essi scambiano con il
nostro sistema, permette di precisare i "confini" del sistema che stiamo
analizzando:
– le attività che producono i flussi indirizzati verso gli agenti esterni
sono interne al sistema
– le attività che producono i flussi che arrivano dagli agenti esterni sono
al di fuori del sistema
Sistemi informativi per
Diagrammi di flusso dei dati
13
Diagramma di contesto
• ogni sistema è in relazione con il "mondo esterno", dal quale riceve input e
verso il quale produce output
Z
"il
sistema"
X
Deposito W
Y
il diagramma di contesto rappresenta le interazioni tra il sistema e il "mondo esterno"
•
•
•
•
un solo processo, che rappresenta il sistema nella sua globalità
tutti gli agenti esterni
i flussi che agenti esterni e sistema si scambiano
eventuali depositi
Sistemi informativi per
Diagrammi di flusso dei dati
14
Scomposizione dei processi
ogni processo può essere scomposto in sottoprocessi (‘eplosione’ di un processo):
• la scomposizione origina un nuovo diagramma
• regola di scomposizione: i flussi di input e di output collegati al processo "padre"
devono essere collegati anche ai processi "figli" (padri e figli devono avere i
medesimi input ed output "netti” - regola di continuità dei flussi)
• la scomposizione è reversibile: è cioè possibile aggregare più processi in un
macro-processo
DFD articolati su più livelli
il meccanismo di scomposizione dei processi permette di rappresentare le
funzionalità di un sistema a diversi livelli di dettaglio:
• dal diagramma più sintetico, con un unico processo (contesto)
• attraverso una serie di diagrammi intermedi
• fino ai diagrammi di dettaglio, che evidenziano i processi elementari
(non ulteriormente scomposti)
Sistemi informativi per
Diagrammi di flusso dei dati
15
Scomposizione dei processi
Ciascuna processo è identificato oltre che
dal nome da un numero; i processi figli sono
identificati con lo stesso numero del padre
seguito da un altro numero progressivo, con
una notazione ‘punto’
Es. n.ro padre 2
n.ri figli 2.1, 2.2, 2.3
n.ro padre 2.2
n.ri figli 2.2.1, 2.2.2, 2.2.3
x
z
processo
2
y
Diagramma di scomposizione del processo 2
x
deposito
"X"
2.1
y
Sistemi informativi per
z
2.2
2.3
Diagrammi di flusso dei dati
16
x
DFD articolati su più livelli
diagramma di contesto
z
x
0
z
y
diagramma di scomposizione di primo livello
x
x
1
z
3
2
y
z
scomposizione processo 1
1.4
scomposizione processo 3
1.1
1.2
3.3
1.3
3.2
3.1
scomposizione processo 2
2.1
Sistemi informativi per
2.2
Diagrammi di flusso dei dati
17
Altri simboli utilizzati
* connessione logica ‘AND’ tra flussi
 OR esclusivo tra flussi
OR tra flussi
A
*
A
C

P
F
D
E
A
C
P
B
*
E
Sistemi informativi per
P
B
D
B
C
D
Diagrammi di flusso dei dati
18
Problemi della scomposizione
1. In che modo (secondo quali criteri) è opportuno partizionare un processo?
• sono state proposte diverse tecniche per aiutare l'analista nella scomposizione.
• "eventi" a cui il processo deve rispondere, e definizione di un sottoprocesso per
ciascun evento, che tratti l'evento in modo completo producendo tutte le "risposte"
necessarie per soddisfarlo
• scomposizione in base a ‘partizionamenti’ nel dominio applicativo
2. In quanti sottoprocessi bisogna partizionare ciascun processo?
• non esiste una regola vera e propria. Il numero dei sottoprocessi dipende dal
tipo di processo e dai criteri (dalla tecnica) utilizzata per il partizionamento
• poiché ogni scomposizione genera un nuovo diagramma, è importante che il
diagramma risultante risulti comprensibile, e che pertanto il numero di (sotto)
processi contenuti non sia troppo elevato
• l'applicazione ai DFD di studi di psicologia sperimentale hanno portato a
proporre un numero indicativo di 7 (+ o - 2) sottoprocessi per ogni processo
(sono numeri da prendere con buon senso, non da applicare in modo
meccanico)
Sistemi informativi per
Diagrammi di flusso dei dati
19
3. Fino a che livello di dettaglio spingersi nella scomposizione?
• Ogni processo può essere più o meno complesso, e generare quindi un
numero di sottoprocessi elementari molto diverso da quelli originati da un
altro processo
• Le tecniche utilizzate per il partizionamento influenzano anche il numero di
diagrammi prodotti nella scomposizione, ed il livello di dettaglio necessario.
• Il livello analitico da raggiungere è comunque fortemente condizionato dal
processo di sviluppo utilizzato, e dalle modalità di passaggio previste tra
l'analisi e il disegno.
Sistemi informativi per
Diagrammi di flusso dei dati
20
Qualche regola
• Non considerare operazioni di inizializzazione, terminazione del sistema, di
gestione di errori o eccezioni
il sistema va immaginato in uno stato stabile ed invariante in cui idati di
uscita sono prodotti da quelli di ingresso
• individuare entrate ed uscite nette dal sistema o sua parte
• evidenziarle, ad esempio, disegnandole più estrne
• assegnare ai flussi nomi significativi,
• assegnare ai processi nomi significativi, che esprimano le trasformazioni sui dati
evitare nomi generici ed ambigui, usare la terminologia del dominio
applicativo
• verificare la correttezza e la consistenza del DFD, percorrendo i flussi sia dagli
ingressi alle uscite, sia risalendo dalle uscite fino agli ingressi dai quali essi
dipendono
Sistemi informativi per
Diagrammi di flusso dei dati
21
Punti di forza e criticità dei DFD
Punti di forza
• attenzione posta sull'interazione tra il sistema e il mondo esterno (approccio
"sistemico", e definizione chiara del contesto
• capacità di rappresentare qualunque tipo di sistema, a diversi livelli di
astrazione
• intuitività, immediatezza come strumento di comunicazione
• costituiscono una linea guida per gli analisti, in quanto costringono a porsi le
domande a cui l'analisi deve dare risposta
Criticità
• l'approccio top-down può risultare inadeguato per sistemi dai requisiti instabili
• rischi di orientamento alle soluzioni tecniche ( "come bisogna implementare"
anziché al "cosa deve fare il sistema"), particolarmente nei livelli più dettagliati
• le "regole sintattiche" sono limitate: la qualità dei modelli prodotti dipende
fortemente dall'esperienza di chi li utilizza
Sistemi informativi per
Diagrammi di flusso dei dati
22
DFD - Esempio gestione ristorante
Diagramma di contesto
ordinazione
Fornitore
Ristorante
fornitura
pagamento
ordine
Cliente
Sistemi informativi per
pasto
conto
ricevuta
Diagrammi di flusso dei dati
23
DFD - Esempio gestione ristorante
effettua
pagamento
fattura
archivio pagam.
archivio giacenze
emett
e
ordine
fornitura
Fornitore
riceve
registra
consumo
ordini
menù
processa
ordine
produci
conto
consumo
effettua
pagamento
conto
ordine
prendi
ordine
Fornitore
pasto
ordine
pagamento
Cliente
Sistemi informativi per
Diagrammi di flusso dei dati
ricevuta
24
Scarica

Modelli dei processi: DFD