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