Flowchart generator - dal sorgente al diagramma

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3788
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Flowchart generator - dal sorgente al diagramma

Messaggio da joe »

Qualcuno di voi avvezzo alla programmazione, revisione, ma soprattutto analisi di codice scritto da altri probabilmente si sarà posto il problema.

Scenario: abbiamo davanti al naso il sorgente di un programma che non abbiamo scritto noi, dobbiamo capire cosa fà senza perderci tra i vari costrutti, chiamate e... mettiamoci anche qualche "go to".

Ok, prima di buttarci a pesce nell'analisi del nostro sorgente riga per riga, sarà anche a voi venuto da chiedervi:
"E se avessimo il diagramma di flusso delle operazioni che vengono svolte?
Non sarebbe più facile e rapida la nostra analisi?"

Siccome d'esperienza in programmazione ne ho pochina e tutta robetta semplice, immagino che qualcuno con più esperienza di me si sia già posto la domanda.
E infatti in rete si trova qualche tool che dandogli in pasto il sorgente, ci sputa fuori un bel disegnino che mostra la strada che segue il programma per svolgere le sue operazioni.

Prima di installare e provare questo o quello, vi chiedo (a voi programmatori, ma anche a chi ha a che fare per vie traverse con l'analisi di codice sorgente..):
  1. vi siete mai trovati a farvi questa domanda? Ha un certo senso che un programmatore se la ponga?
  2. avete da consigliare qualche programma per analizzare un sorgente...? Ed in particolare qualcosa che ne disegni il diagramma? (possibilmente qualcosa di personalmente testato).
Nel mio caso ho a che fare con programmi scritti in Fortran 77.
Al solito, grazie per le eventuali risposte! :)

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6628
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: Flowchart generator - dal sorgente al diagramma

Messaggio da targzeta »

1. Ha assolutamente senso. Se qualcuno non se la pone sarebbe un problema!
2. Io ho usato questo anche se è un progetto vecchio. Per il perl ha fatto il suo dovere.

Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3788
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Flowchart generator - dal sorgente al diagramma

Messaggio da joe »

Grazie della risposta.
Il programma che hai linkato non mi pare supporti il fortran...

Avevo trovato questo ieri:
http://www.deater.net/weave/vmwprod/f77_diagram/

Provato, ma il risultato è abbastanza pietoso: disegna solo una piccola parte del diagramma del programma ma se ne lascia indietro troppo. Quindi niente da fare...
Non so cosa non digerisca esattamente, se qualche "go to" di troppo o roba simile...

Ho provato anche doxygen, prendendo spunto da questo breve tutorial pratico:
http://www.softeng-support.ac.uk/docume ... xygen.html

Funziona, ma non disegna il diagramma d flusso... piuttosto un diagramma di quali parti del programma vengono chiamate da altre. Quali funzioni e subroutines vengono chiamate dal programma ecc. Insomma è comunque utile ma non è quello che cercavo.
Se avete qualche altro suggerimento benvenga. Nel frattempo provo a cercare qualche alche alternativa e al limite mi rassegno e proseguo con l'analisi manuale.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3788
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Flowchart generator - dal sorgente al diagramma

Messaggio da joe »

Ho fatto alcune prove poco fà.
Odio dirlo, ma non sono riuscito a trovare un software che funzioni sotto linux. Ci sono diversi software, ma alcuni non funzionano, altri non supportano il linguaggio fortran...
Insomma non sono riuscito a produrre un diagramma di flusso del programmino che sto studiando. Codice tutto sommato non così complesso, programmato in modo "procedurale" e minimamente strutturato (c'è il main, due subroutines e due functions... niente di che insomma).

Alla fine cercando e cercando ho trovato un'applicazione chiamata "Visustin".
Problema, non c'è una versione per Linux.
Ho provato con wine, ma il risultato prodotto è... quanto meno strano. Viene disegato un flowchrat, ma non completamente: mancano le operazioni (proprio il testo) dentro i riquadri e non viene visualizzato correttamente.

Mi sono arreso e ho fatto partire la macchina virtuale con XP (W KVM!!). Spostato l'installer di visustin e il sorgente dall'host al sistema guest via samba...
Con grande stupore... perchè ormai non ci speravo più.... Bè, Visustin ha riprodotto graficamente tutte le operazioni, le scelte ecc, che riporta il sorgente datogli in pasto.
Proprio quello che mi serviva insomma.
Unica pecca, non da poco è l'impossibilità di stampare o salvare il disegnino, in quanto la versione installata è comunque solo una demo in valutazione. D'altra parte "a caval donato..".

Ora che ho fatto il nome di un software concreto e magari ho dato meglio l'idea di quel che mi serve.
Non è che per caso qualcuno conosce una valida alternativa possibilmente Libera e "Linux compatibile" a questo Visustin?

Se la risposta fosse negativa e qualcuno sta cercando un software del genere e magari no ha trovato niente di funzionate, consiglio di provare quello indicato, ok, non gira sul pinguino, ma a volte la priorità è ottenere un risultato al volo.

Spero che mi possiate consigliare qualche alternativa.
Alla prossima! :)

Avatar utente
nico giraldi
Linux 1.x
Linux 1.x
Messaggi: 118
Iscritto il: lun 10 set 2007, 1:56
Slackware: 14.1
Kernel: 3.10
Desktop: xfce
Località: Roma

Re: Flowchart generator - dal sorgente al diagramma

Messaggio da nico giraldi »

Domanda probabilmente idiota: ma usare Doxygen? Anche se il codice non contiene documentazione, basta attivare qualcosa tipo "optimize for fortran", "call graph" e "have_dot" e dovrebbe fare quello che chedi se non ho capito male.
Serve anche una libreria, ora non ricordo quale ma te lo dice Doxygen quando lo fai girare. Io l'ho usato per analizzare 20k righe di F77 e funziona.

ng

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3788
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Flowchart generator - dal sorgente al diagramma

Messaggio da joe »

Per capirci, a me servirebbe sta roba:
https://dl.dropboxusercontent.com/u/410 ... sustin.jpg

Con doxygen ho provato ma senza risultati.
Però, come ho già detto sopra, mi restituisce non un flowchart ma uno schema delle chiamate tra il main e le varie subroutines e funzioni. A me quello non serve.
Però non conosco bene doxygen.
Se sai che è in grado di produrre un diagramma di flusso come quello in figura, fammi sapere! E grazie per il consiglio :D
Se dai un'occhiata alla figura e mi sai dire qualcosa mi saresti in ogni caso di grande aiuto.

Avatar utente
nico giraldi
Linux 1.x
Linux 1.x
Messaggi: 118
Iscritto il: lun 10 set 2007, 1:56
Slackware: 14.1
Kernel: 3.10
Desktop: xfce
Località: Roma

Re: Flowchart generator - dal sorgente al diagramma

Messaggio da nico giraldi »

Ok, mi sembrava troppo facile, avevo capito male. Hai ragione tu, doxygen non fa una cosa del genere. Non conosco un strumento che la faccia, anzi se lo scopri aggiorna il thread!

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3788
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Flowchart generator - dal sorgente al diagramma

Messaggio da joe »

Ok, grazie comunque per la risposta.
A me uno strumento del genere pare piuttosto utile se si deve analizzare il codice scritto da altri. E a dirla tutta mi pare anche un po' strano che non ve ne sia uno simile sotto linux. Forse anche il linguaggio fortran che interessa a me non è così diffuso tra gli sviluppatori... quindi magari il tool per ottenere la stessa cosa esiste, ma supporta solo altri linguaggi più consueti...

Provo, anche se ci ho già cercato dentro a chiedere su linuxquestions vediamo se loro conoscono qualche alternativa linuxita. :)
Ad ogni modo eventualmente aggiornerò la discussione se ci fossero degli sviluppi.
Per il momento grazie a tutti.

Avatar utente
nico giraldi
Linux 1.x
Linux 1.x
Messaggi: 118
Iscritto il: lun 10 set 2007, 1:56
Slackware: 14.1
Kernel: 3.10
Desktop: xfce
Località: Roma

Re: Flowchart generator - dal sorgente al diagramma

Messaggio da nico giraldi »


Rispondi