Инструменты для документирования / визуализации графа вызовов? - PullRequest
7 голосов
/ 12 января 2011

Недавно присоединившись к проекту с огромным количеством кода, с которым можно разобраться, я хотел бы начать документировать и визуализировать некоторые потоки через граф вызовов, чтобы лучше понять, как все сочетается. Вот что я хотел бы видеть в своем идеальном инструменте:

  • каждый узел - это функция / метод
  • узлы подключены, если одна функция может вызывать другую
  • необязательное квадратное поле между условиями детализации, при которых выполняется вызов (или значок метки, на который можно навести курсор как всплывающая подсказка)
  • также значок на ребре, описывающий параметры
  • наведите курсор на узел и отобразится описание
  • дополнительные значки для узла для отображения псевдокода
  • сценарий / представление домена - отображение подмножества полной диаграммы для конкретного варианта использования
  • режим просмотра слайдов - для каждого кадра текущая выполняемая функция подсвечивается
  • множество опций для отображения, чтобы уменьшить беспорядок на экране

интерактивное использование такого инструмента является ключевым, я не ищу решение типа Graphviz, потому что было бы слишком много беспорядка. Способность сформировать представление подмножества всего графа была бы очень удобной (возможно, с неважным беспорядочным затенением). Не требует автоматической генерации из исходного кода, рад ввести его вручную.

Почти как карта ума.

Это имеет смысл? Если вы не знаете о таком инструменте, думаете ли вы, что он будет полезен? (На случай, если я решу пойти и почесать этот зуд однажды!)

Ответы [ 2 ]

1 голос
/ 12 января 2011

Вы не упоминаете среду, которую используете, но если это .NET, NDepend может пригодиться.

0 голосов
/ 14 июня 2012

Для дальнейшей разработки ответа Виллема ван Румпта с помощью инструмента NDepend вы действительно можете получить граф вызовов , подобный этому. Отказ от ответственности: я являюсь одним из разработчиков инструмента

Call graph

Для этого вам просто нужно экспортировать в график результат CQLinqкодовый запрос :

code query exporting

Такой кодовый запрос может быть сгенерирован фактически для любого метода благодаря контекстному меню, показанному ниже.

Select methods that use me directly or indirectly

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...