Существует ли какое-то приложение, которое анализирует исходный код и графически показывает все связи между функциями?
Он мне нужен для устаревшего кода, над которым я работаю - он огромен, функционален и плохо написан ...: (
NDepend может управлять графом вызовов так же хорошо, как предложил madgnome. Позвольте мне немного развиться. Во-первых, вы можете запросить график вызовов с помощью запроса CQL, во-вторых, вы можете экспортировать результат запроса в график зависимостей или матрицу зависимостей.
Конкретно ниже мы запрашиваем вызывающие методы класса AppDomain в NUnit 2.4.8 (это может быть метод, поле, пространство имен... что угодно). Это меню может появиться и в Visual Studio благодаря надстройке NDepend VS.
Затем для нас генерируется CQL-запрос, мы видим, что в графе вызовов сопоставляются 30 методов. У нас есть возможность экспортировать этот набор методов в виде графического графика...
... и вот полученный график (см. увеличенную версию этого графика здесь)
.Net Reflector довольно удобен — я использовал его пару раз для получения такого рода Информация. Существует ряд надстроек, по крайней мере одна из которых генерирует диаграммы зависимостей.
Кроме того, в VS.Net 2008 или выше может быть полезно щелкнуть правой кнопкой мыши «Найти все ссылки».
В Visual Studio 2010 Ultimate вы можете Создавать диаграммы последовательности
:
http://www.devcurry.com/2010/03/generate-sequence-diagrams- in-visual.html
Подробности также можно найти в документации MSDN:
http://msdn.microsoft.com/en-us/library/dd409458.aspx
И это тоже может быть интересно ( Создание графиков зависимостей для кода .NET):
ReSharper предоставляет функции, которые позволяют вам видеть график методов, вызывающих ваш метод, и наоборот. (Исходящие и входящие звонки)
Это новая функция под названием "Отслеживание звонков"