Diagramma di flusso
Quello dei diagrammi di flusso (in inglese detti anche flow chart) è un linguaggio di modellazione grafico per rappresentare il flusso di controllo di algoritmi, procedure, istruzioni operative (in senso lato).
Esso consente di descrivere in modo schematico:
- le operazioni da compiere, rappresentate mediante sagome convenzionali (come rettangoli, rombi, esagoni, parallelogrammi, rettangoli smussati...) all'interno delle quali un'indicazione testuale descrive l'attività da svolgere
- la sequenza nella quale devono essere compiute, rappresentate con frecce di collegamento.
Per questa loro connotazione topologica i diagrammi di flusso possono essere ricondotti alla classe più ampia dei diagrammi a blocchi, che a loro volta rientrano nell'ancora più vasta categoria delle mappe concettuali, utilizzate soprattutto per la descrizione e la rappresentazione delle informazioni e della conoscenza.
Indice |
Utilizzo [modifica]
I diagrammi di flusso trovano la loro applicazione in vari ambiti, ma quello in cui storicamente si sono maggiormente affermati è stato quello informatico dove, solo in tempi più recenti, sono stati affiancati da altri strumenti metodologici quali lo pseudocodice e l'UML.
Blocchi elementari [modifica]
Esistono varie notazioni per la rappresentazione con diagrammi di flusso. Tutte le notazioni sottendono a un meta-modello molto semplice, caratterizzato da una lettura sequenziale:
- si parte dal blocco iniziale
- si segue la freccia in uscita
- si giunge al blocco successivo e si effettua l'operazione descritta nel blocco
- si procede iterando i passi 2 e 3 fino a giungere al blocco finale.
Tra le operazioni si distinguono:
- azione, che comportano una attività o un'elaborazione
- test, che indicano due o più direzioni in base a un fattore di decisione
- ingresso/uscita, che comportano l'immissione di informazioni dall'esterno oppure l'invio di informazioni verso l'esterno
La notazione più semplice e più frequentemente utilizzata prevede dunque 5 tipi di blocchi elementari:
| blocco iniziale | blocco finale |
| blocco di I/O | blocco di Elaborazione |
| blocco di controllo | |
Una combinazione di blocchi elementari descrive un algoritmo se:
- viene usato un numero finito di blocchi
- lo schema inizia con un blocco iniziale e termina con un blocco finale
- ogni blocco soddisfa le condizioni di validità
Condizioni di validità [modifica]
- condizioni sui blocchi:
- blocco azione e blocco lettura/scrittura: ogni blocco di questi due tipi ha una sola freccia entrante e una sola freccia uscente
- blocco di controllo: ogni blocco di questo genere ha una sola freccia entrante e due frecce uscenti
- condizioni sulle frecce:
- ogni freccia deve entrare in un blocco
- condizioni sui percorsi:
- dal blocco iniziale deve essere possibile raggiungere ogni blocco
- da ogni blocco dev'essere possibile raggiungere il blocco finale
Esempio [modifica]
Dato l'algoritmo per il calcolo del fattoriale in maniera ricorsiva
un possibile diagramma di flusso per rappresentarlo:
Dove tale diagramma rappresenta una procedura ricorsiva, denominata "fatt", che richiama sé stessa.
Voci correlate [modifica]
- Diagramma UML
- Activity diagram
- Sequence diagram
- Schema a blocchi
- Mappe concettuali
- Programmazione strutturata
- Algoritmo
Altri progetti [modifica]
Commons contiene immagini o altri file su Diagramma di flusso
Collegamenti esterni [modifica]
- Diagramma di flusso nel Nuovo Soggettario della BNCF
|
|
