Визуализация кода C++

Могут быть разные вещи. Класс, Модуль, Файл... Выберите свою желаемую гранулярность тестирования.

9
задан Community 23 May 2017 в 11:45
поделиться

9 ответов

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

6
ответ дан 4 December 2019 в 07:35
поделиться

Для получения коммерческого продукта по разумной цене вы можете попробовать SolidSX от Vizlogix (www.vizlogix.com). (Если вы находитесь за пределами Северной Америки, перейдите на SolidSource - www.solidsourceit.com.)

Он генерирует радиальную диаграмму, которую можно свернуть и развернуть. Он также интегрируется с Visual Studio (как BSC, так и .NET).

2
ответ дан 4 December 2019 в 07:35
поделиться

Хороший инструмент UML должен помочь.

Вот список общих инструментов UMl: http://en.wikipedia.org/wiki/List_of_UML_tools

Их много, и все они с разными наборами функций. Попробуйте поиграть с несколькими, чтобы увидеть, получите ли вы желаемый результат. Если бесплатные вам подведут, возможно, придется потратиться на хороший инструмент UML коммерческого уровня

5
ответ дан 4 December 2019 в 07:35
поделиться

Вместо того, чтобы переходить к полному инструменту Class Designer, просто используйте «Class View» или «Object Browser» в Visual Studio - они представляют полностью сворачиваемую иерархию классов.

5
ответ дан 4 December 2019 в 07:35
поделиться

Больше всего мне удалось добиться с помощью valgrind и kcachegrind. Вы запускаете valgrind для своего отладочного двоичного файла, выполняете любые действия, которые вам интересны, затем импортируете вывод в kcachegrind, чтобы увидеть все, что вы когда-либо хотели знать о том, кто что звонил, как часто и когда. Кроме того, поскольку вы выполняете это динамически, он выявляет случаи, которые, вероятно, не будут иметь место при статическом анализе.

Я также добился определенных успехов, используя функции обратного проектирования Enterprise Architect, хотя это не так хорошо (но вы получаете работоспособную Модель UML, которая хороша!).

И, наконец, инструмент под названием «Понять». Это довольно хорошо для статического объектно-ориентированного анализа, но я думаю, что это довольно дорого и не так широко используется.

3
ответ дан 4 December 2019 в 07:35
поделиться

Попробуйте Source Insight возможно для настройки глубины сгенерированного графика в этом инструменте.

См. Также Утилита графа вызовов C / C ++ для платформы Windows

2
ответ дан 4 December 2019 в 07:35
поделиться

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

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

2
ответ дан 4 December 2019 в 07:35
поделиться

Как вы определяете «главную вену»? Вам либо нужен редуктор графа или скелетайзер (вы можете найти или написать его и применить к тому, что производят Doxygen и все остальное), либо «основная жилка» имеет какое-то отношение к функции кода и, я не думаю, автоматизированный инструмент может помочь вам в этом. Если вы не можете указать на это: «Это важные биты, которые выполняют ввод и вывод, покажите мне только элементы, которые находятся на расстоянии одного или двух шагов от путей между ними». Хм, звучит как классный инструмент для написания:)

... иерархия наследования, в каком-то сворачиваемом виде.

опять же, прекрасная идея для инструмента!

0
ответ дан 4 December 2019 в 07:35
поделиться

Вы можете попробовать CppDepend , он не создает иерархию классов, как это делает Doxygen, но может показать «общую картину» вашего проекта, он также показывает некоторые показатели кода.

4
ответ дан 4 December 2019 в 07:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: