Есть ли инструменты для визуализации методов шаблона / класса и их использования? - PullRequest
2 голосов
/ 30 августа 2008

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

Есть ли какой-нибудь хороший инструмент, который может как-то визуализировать зависимости и нарисовать красивое дерево вызовов или что-то подобное?

Код находится на C ++ в Visual Studio, если это помогает сузить выбор.

Ответы [ 5 ]

1 голос
/ 01 сентября 2008

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

1 голос
/ 30 августа 2008

Вот несколько вариантов:

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

0 голосов
/ 02 сентября 2008

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

Конечно, я это сделал, но, как я уже говорил, doxygen не учитывает интерфейсы между объектами, как они определены в IDL. «Только» показывает прямые вызовы C ++.

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

0 голосов
/ 01 сентября 2008

Дэвид, спасибо за предложения. Я провел выходные, пробуя программы.

Doxygen, кажется, является наиболее полным из 3, но он все еще оставляет желать лучшего в отношении вызывающих методов.

Все 3, кажется, имеют проблемы с шаблонами C ++ в различной степени. CC-Rider просто разбился в середине анализа, и CodeDrawer не показывает многих взаимосвязей. Doxygen работал довольно хорошо, но он также не обнаружил и не показал все отношения и вместо этого перегружал меня большим количеством ссылок на макросы, пока я не отфильтровал их.

Так что, может быть, мне следует немного уточнить «большую кодовую базу» для возможных других предложений:> 100 000 строк кода в целом распределены по более чем 100 файлам шаблонов плюс несколько реальных файлов классов, объединяя все это.

Есть ли еще какие-нибудь инструменты, которые могли бы быть полезны для задачи и могли бы работать лучше (более тщательно)? Да и конкретно: что-нибудь, что понимает интерфейсы IDL и COM?

0 голосов
/ 30 августа 2008

В Java я бы начал с JDepend. В .NET, с NDepend. Не знаю насчет C ++.

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