Ultimamente sto lavorando su alcuni codici lunghi e oscuri scritti da altri bravi ragazzi. Sto pensando di generare i diagrammi del flusso di dati e i diagrammi di flusso per facilitare il mio lavoro. C'è qualche tipo di software che può fare questo lavoro automaticamente? P.S. La maggior parte dei codici sono in C e Fortran.C'è un modo per generare automaticamente diagrammi di flusso di dati e diagrammi di flusso?
risposta
I diagrammi del flusso di dati sono più difficili perché richiedono la maggior parte di un front-end del compilatore per ricavare le informazioni di base necessarie per disegnarli. Ma è possibile ottenere grafici di chiamate e chiamanti nonché alcuni tipi di schemi di relazioni di entità a partire da Doxygen con Graphviz.
Inoltre, Graphviz è generalmente utile per disegnare tutti i tipi di grafici con layout leggibili da dati grezzi. È facile camminare su una struttura ad albero e generare una descrizione nel linguaggio DOT affinché Graphviz disegni, per esempio.
Imposta Doxygen up con le opzioni corrette e gira il codice legacy e otterrai l'inizio di un documento interno per aiutarti a orientarti.
Grazie RBerteig. Grazie per avermi fatto conoscere Graphviz e Doxygen. – Zatuch
"Codice Visual to Flowchart" di FateSoftware può anche essere di aiuto.
Dia è un programma simile a Microsoft Visio. Non è così liscio, ma fa il lavoro. Lo uso sempre professionalmente quando Visio non è disponibile. Questo è principalmente per UML e diagrammi di flusso, esporta in png e vettori, e penso che anche i PDF.
È possibile elaborare un po 'su dove i dati per i diagrammi dovrebbero provenire? Ti aspetti che il programma esegua un'analisi statica del tuo codice prima di estrarre i dati? – lothar
In realtà ciò che devo fare è capire meglio i codici sorgente originali in modo da modificarli, migliorarli e aggiornarli, ad es. Aggiungere nuove funzionalità extra e rimuovere le obsolescenze. Spero di poter monitorare il flusso di dati tra funzioni, procedure, origini dati/sink. Un po 'come l'analisi del codice statico. – Zatuch