Инструмент для визуализации деревьев иерархии функций? - PullRequest
1 голос
/ 17 января 2009

Любой код-анализ или инструмент "обратного инжиниринга", который может выполнять любой из этих?:

  • Вычислить, какие классы подклассы из каких классов
  • Вычислить, какие классы создать экземпляр , какие классы - (как VS Class Designer )
  • Вычислить, какие функции вызывать , какие функции - (очень похоже на стек вызовов )

Ответы [ 3 ]

1 голос
/ 19 октября 2010

Вычислить, какие функции вызывают, какие функции

NDepend может создавать некоторые полезные методы или класс граф вызовов , как, например, на скриншоте ниже (полное изображение здесь ) Отказ от ответственности: я являюсь одним из разработчиков инструмент

NDepend Methods Call Graph

Найдите больше объяснений о как генерировать граф вызовов с NDepend здесь .

Вычислить, какие классы являются подклассами каких классов

Точно так же NDepend может генерировать граф наследования классов ( объяснение для генерации графа наследования классов здесь ).

Вычислить, какие классы создавать экземпляры, какие классы

NDepend позволяет писать Запрос кода через LINQ Query (что мы называем CQLinq ). С CQLinq вы можете запросить методы или классы, которые создают определенный класс, например:

from m in Methods 
where m.CreateA("NUnit.Core.NUnitConfiguration")
select m

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

Как примечание: с CQLinq можно также писать правила кода. По умолчанию предлагается более 200 правил кода , в том числе правила, касающиеся дизайна , архитектуры , качества кода , эволюции кода , соглашения об именах , мертвый код , .NET Fx использование ...

Правила CQLinq могут быть подтверждены в реальном времени в Visual Studio или могут быть проверены в процессе сборки и сообщены в отчете HTML / javascript .

1 голос
/ 17 января 2009

Doxygen + GraphViz (для картинок для doxygen требуется GraphViz)

Имеет самую большую поддержку языков (поскольку вы не указали язык), а средство просмотра - это браузер, поэтому после его создания каждый сможет его просмотреть.

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

Существуют также инструменты, специализирующиеся на языке, такие как Understand for C ++ .

0 голосов
/ 17 января 2009

Понимаю 2,0

... показывает зависимость между частями кода, написанного на разные языки . CLA сделать это легко следить за звонками. ~ Комбинированный анализ языка

В частности это Дерево вызовов функций image.

...