Diagramma di flusso

Un semplice diagramma di flusso che rappresenta il processo per gestire una lampadina non funzionante.

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 mediante diagrammi di flusso. Tutte le notazioni sottendono a un meta-modello molto semplice, caratterizzato da una lettura sequenziale:

  1. si parte dal blocco iniziale
  2. si segue la freccia in uscita
  3. si giunge al blocco successivo e esegue l'operazione descritta nel blocco
  4. 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à

  • 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. Dia è un software libero per la creazione di diagrammi di flusso, organigrammi, UML, ER ecc.
  • 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

Note

  1. 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.
  2. ↑ (EN) IBM, Flowcharting Techniques (PDF), marzo 1970, p. 10.
  3. 1 2 (EN) What do the different flowchart shapes mean?, su rff.com, RFF Electronics. URL consultato il 23 July 2017.

Altri progetti

Collegamenti esterni

Controllo di autoritàThesaurus BNCF 17222 · LCCN (EN) sh85049286 · GND (DE) 4131768-3 · BNF (FR) cb11940186h (data) · J9U (EN, HE) 987007538452105171