Recentemente ho fatto alcuni diagrammi di flusso e ho lottato con lo stesso problema, come presentare chiamate di subroutine, o forse chiamate di metodo e funzione come potresti chiamarle in questi giorni.
Ho optato per una convenzione che separa le CHIAMATE della subroutine dalle RIFERIMENTI della subroutine. Per il primo utilizzo un normale rettangolo che mostra la chiamata con gli argomenti in corso, usando qualunque variabile sia attiva a quel punto nell'esecuzione del programma.
Uso il rettangolo di "processo predefinito" a doppia faccia semplicemente come riferimento ad un altro diagramma di flusso che contiene la definizione di quella funzione o sub-routine. Il rettangolo della sub-routine non ha bisogno di mostrare gli argomenti della sub-routine poiché fa parte del diagramma di flusso di definizione della sub-routine in questione, ma può essere utile aggiungerli già nel riferimento in modo che chiunque lo legga possa vedere il significato degli argomenti reali utilizzati in una chiamata.
Ciò aumenta il numero di rettangoli ma rende più chiaro che esistono quegli altri diagrammi di flusso per cercare la definizione di alcune delle funzioni chiamate da. Spesso se una funzione è semplice non creerò un diagramma separato per essa, ma la documenterò solo verbalmente.
Uso anche il simbolo "documento" per dire che i dettagli dovrebbero essere cercati dalla lista dei codici.
Il punto di un diagramma di flusso per me non è creare un programma, ma rendere più facile per gli altri capire un programma. Penso che l'aiuto come una visione a volo d'uccello e quello scopo di loro dovrebbero essere tenuti a mente. Non servono per descrivere visivamente OGNI dettaglio del programma, i dettagli sono visibili dal codice quando necessario. Il diagramma di flusso è solo una foto del tuo programma dal punto di vista di alto livello.
Mantenere i diagrammi di flusso di alto livello significa anche che è meno necessario tenerli aggiornati quando il codice viene modificato.
Sono immagini. Come ogni buona storia, la documentazione del software dovrebbe contenere anche immagini che forniscano un punto di vista alternativo al codice.