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
[modifica | modifica wikitesto]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 | modifica wikitesto]Esistono varie notazioni per la rappresentazione mediante 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 esegue l'operazione descritta nel blocco
- si procede iterando i passi precedenti fino a giungere al blocco finale.
Nel corso del tempo, la rappresentazione dei diagrammi di flusso è stata oggetto di standardizzazione, al fine di garantire uniformità e comprensione condivisa dei simboli utilizzati. Negli anni sessanta l'American National Standards Institute (ANSI) ha definito i primi standard formali per i diagrammi di flusso e i relativi simboli grafici. Tali simboli sono stati successivamente adottati dall'Organizzazione internazionale per la normazione (ISO) nel 1970.[1] Lo standard attuale, ISO 5807, pubblicato nel 1985 e aggiornato più volte, con l'ultima revisione nel 2019. Secondo tali convenzioni, i diagrammi di flusso sono generalmente letti dall'alto verso il basso e da sinistra a destra.[2]
| Forma ANSI/ISO | Nome | Descrizione |
|---|---|---|
| Linea di flusso (freccia) | Mostra l'ordine di esecuzione delle operazioni del processo. È rappresentata da una linea che parte da un simbolo e punta a un altro. Le punte di freccia vengono aggiunte quando il flusso non segue la direzione standard dall'alto verso il basso e da sinistra a destra.[1] | |
| Terminatore | Indica l'inizio e la fine di un programma o di un sottoprocesso. È rappresentato da una forma ovale o rettangolo con angoli arrotondati. Di solito contiene le parole «Inizio» o «Fine», oppure un'altra espressione che segnala l'avvio o la conclusione del processo, come «invia richiesta» o «ricevi prodotto».[1] | |
| Processo | Rappresenta un insieme di operazioni che modificano il valore, la forma o la posizione dei dati. È rappresentato da un rettangolo.[1] | |
| Decisione | Mostra un'operazione condizionale che determina quale dei due percorsi il programma seguirà. L'operazione è comunemente una domanda sì/no o un test vero/falso. È rappresentata da un rombo.[1] | |
| Ingresso/uscita | Indica le operazioni di immissione e restituzione dei dati, come l'inserimento di dati o la visualizzazione dei risultati. È rappresentata da un parallelogramma.[1] | |
| Annotazione (commento) | Indica informazioni aggiuntive relative a una fase del programma. È rappresentata da un rettangolo aperto collegato al simbolo corrispondente nel diagramma di flusso mediante una linea continua o tratteggiata.[1] | |
| Processo predefinito | Indica un processo con nome, definito altrove. È rappresentato da un rettangolo con i lati verticali doppi.[1] | |
| Connettore nella stessa pagina | Coppie di connettori etichettati sostituiscono linee lunghe o complesse all'interno di una pagina del diagramma di flusso. È rappresentato da un piccolo cerchio contenente una lettera.[1][3] | |
| Connettore fuori pagina | Connettore etichettato utilizzato quando il collegamento punta a un'altra pagina. È rappresentato da un pentagono a forma di casa base.[1][3] |
All'interno di un diagramma di flusso si distinguono diverse tipologie di operazioni:
- azioni, che comportano un'attività o un'elaborazione da eseguire
- test, una diramazione del flusso in base a una condizione logica (ad esempio vero falso)
- operazioni di ingresso/uscita, che rappresentano l'acquisizione di informazioni dall'esterno oppure la loro restituzione verso l'esterno
La notazione più semplice e più frequentemente utilizzata prevede un insieme limitato di blocchi elementari, ciascuno associato a un simbolo grafico standardizzato.
| blocco iniziale | blocco finale |
|---|---|
| blocco di I/O | blocco di elaborazione |
| blocco decisionale o test | |
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 | modifica wikitesto]- 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
[modifica | modifica wikitesto]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
[modifica | modifica wikitesto]- Draw.io - Software di diagrammi online gratuito per la creazione di diagrammi di flusso, diagrammi di processo, organigrammi, UML, ER e diagrammi di rete.
- Dia - Software libero per la creazione di diagrammi di flusso, organigrammi, UML, ER ecc.
- Lucidchart - Piattaforma proprietaria basata sul web che consente agli utenti di collaborare alla stesura e alla condivisione di grafici e diagrammi.
- SmartDraw - Strumento di diagramma utilizzato per creare diagrammi di flusso, organigrammi, mappe mentali e grafici di progetto.
- Visme - Strumento di grafica online che può aiutare a creare diagrammi e grafici.
Note
[modifica | modifica wikitesto]- 1 2 3 4 5 6 7 8 9 10 (EN) Harley R. Myler, 2.3 Flowcharts, in Fundamentals of Engineering Programming with C and Fortran, Cambridge University Press, 1998, pp. 32–36, ISBN 978-0-521-62950-8.
- ↑ (EN) IBM, Flowcharting Techniques (PDF), marzo 1970, p. 10.
- 1 2 (EN) What do the different flowchart shapes mean?, su rff.com, RFF Electronics. URL consultato il 23 July 2017.
Voci correlate
[modifica | modifica wikitesto]Altri progetti
[modifica | modifica wikitesto]
Wikizionario contiene il lemma di dizionario «diagramma di flusso»
Wikimedia Commons contiene immagini o altri file sul diagramma di flusso
Collegamenti esterni
[modifica | modifica wikitesto]- Flowchart, su Treccani.it – Enciclopedie on line, Istituto dell'Enciclopedia Italiana.
- Flowchart, su Vocabolario Treccani, Istituto dell'Enciclopedia Italiana.
- flow chart, su sapere.it, De Agostini.
- diagramma di flusso, in Enciclopedia della Matematica, Istituto dell'Enciclopedia Italiana, 2013.
- Flow chart, in Enciclopedia della Matematica, Istituto dell'Enciclopedia Italiana, 2013.
- (EN) flowchart, su Enciclopedia Britannica, Encyclopædia Britannica, Inc.
| Controllo di autorità | Thesaurus BNCF 17222 · LCCN (EN) sh85049286 · GND (DE) 4131768-3 · BNF (FR) cb11940186h (data) · J9U (EN, HE) 987007538452105171 |
|---|