Doxygen может создавать диаграммы отношений сущностей непосредственно из исходного кода. Он будет самым мощным, если вы аннотируете источники в стиле разметки Doxygen. Я могу от всей души порекомендовать принять Doxygen для проектов по разработке языка C / C ++ ...
Это не (по крайней мере, не последний проверенный мной) диаграммы потоков данных.
Все его диаграммы на самом деле создаются путем описания их на языке точек, понятном AT & T's Graphviz package.
Конечно, можно было бы нарисовать диаграммы потока данных с помощью graphviz, но чтобы сделать это автоматически из исходного кода, вам понадобится достаточно парсера, чтобы найти поток данных в первую очередь. Существует бэкэнд XML для GCC, который может предоставить информацию, необходимую для реализации этого, но это, конечно, не тривиальный проект.
Я создал довольно много диаграмм в графвизе. Я нахожу это наиболее ценным, когда у меня есть ряд фактов, и мне нужно найти некоторую визуализацию того, как они связаны. Самым сложным в последнее время стало розыгрыш всех игроков в сложном, длительном судебном процессе. После перечисления каждой из двадцати или около того сторон просто нужно было добавить одну строку в исходный файл точек для каждой пары, которая идентифицировала их соединение. Graphviz позаботится обо всей мерзости компоновки, и полученная в результате цифра значительно облегчила объяснение, почему дело было интересным.