Diagramma di flusso

In informatica il diagramma di flusso  è una rappresentazione grafica delle operazioni da eseguire per l'esecuzione di un algoritmo. Ogni singolo passo è visualizzato tramite una serie di simboli standard.

Esso consente di descrivere tramite un linguaggio di modellazione grafico:
 le operazioni da compiere;
 la sequenza nella quale devono essere compiute, rappresentata 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.

Utilizzo 
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 
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:
 azioni, che comportano un'attività o un'elaborazione da svolgere
 test, che indicano due o più direzioni in base a un fattore di decisione (vero o falso)
 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:

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à 
 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 decisionale: 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 
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.

Strumenti digitali 
 Software gratis: Draw.io è un software di diagrammi online gratuito per la creazione di diagrammi di flusso, diagrammi di processo, organigrammi, UML, ER e diagrammi di rete. GitMind è un software di diagrammi online gratuito per la creazione di diagrammi di flusso, organigrammi, UML, swimlane, che fornisce modelli di programma predefiniti.

 Software proprietario: Lucidchart è una piattaforma proprietaria basata sul web che consente agli utenti di collaborare alla stesura e alla condivisione di grafici e diagrammi. SmartDraw è uno strumento di diagramma utilizzato per creare diagrammi di flusso, organigrammi, mappe mentali e grafici di progetto. Visme è uno strumento di grafica online che può aiutare a creare diagrammi e grafici.

Voci correlate 
 Diagramma UML
 Diagramma di attività
 Sequence Diagram
 Diagramma a blocchi
 Mappa concettuale
 Programmazione strutturata
 Algoritmo
 Diagramma di Sankey

Altri progetti

Collegamenti esterni 
 

Flusso