Vai al contenuto

Diagramma di flusso

Da Wikipedia, l'enciclopedia libera.
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.

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:

  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à

[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

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.
  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.

Voci correlate

[modifica | modifica wikitesto]

Altri progetti

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]
Controllo di autoritàThesaurus BNCF 17222 · LCCN (EN) sh85049286 · GND (DE) 4131768-3 · BNF (FR) cb11940186h (data) · J9U (EN, HE) 987007538452105171
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica