Code graph generator
От: Мишень-сан  
Дата: 04.01.10 12:58
Оценка: 7 (2)
Доброго времени суток!
Нужно построить по исходнику класса на С++ его граф вызовов, включающий все методы класса и функции, находящиеся в том же исходнике. Внешние зависимости можно выкинуть нафик.

Doxygen пробовал, но он, похоже, не строит общий граф вызовов.

Не подскажет ли кто, куда пинать doxygen, или что-нибудь альтернативное?

Зачем всё это надо — есть класс, наваяный умельцами 10 лет назад, занимает ~4K строк кода вместе с описанием. Руки чешутся потихоньку перепилить.

Спасибо.
Re: Code graph generator
От: yuske  
Дата: 04.01.10 22:22
Оценка: +1
Здравствуйте, Мишень-сан, Вы писали:

МС>Доброго времени суток!

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

МС>Doxygen пробовал, но он, похоже, не строит общий граф вызовов.


МС>Не подскажет ли кто, куда пинать doxygen, или что-нибудь альтернативное?


МС>Зачем всё это надо — есть класс, наваяный умельцами 10 лет назад, занимает ~4K строк кода вместе с описанием. Руки чешутся потихоньку перепилить.


МС>Спасибо.


doxygen вместе с Graphviz дает возможность строить графы наследования классов, графы вызова методов. Делал документацию содержащию такие графы на работе, смотрите подробно файл конфигурации doxygen'а. Числа 11 (как на работу попаду) примеры настроек могу скинуть, если еще вопрос будет актуален.
Re: Code graph generator
От: MozgC США http://nightcoder.livejournal.com
Дата: 04.01.10 23:29
Оценка:
Присоединяюсь к вопросу, ищется такой инструмент для C#. NDepend не подходит так как сильно дорогой, а в принципе на данный момент это единственное что от него нужно.
Re[2]: Code graph generator
От: Sheridan Россия  
Дата: 05.01.10 01:46
Оценка:
Приветствую, MozgC, вы писали:

MC> Присоединяюсь к вопросу, ищется такой инструмент для C#. NDepend не подходит так как сильно дорогой, а в принципе на данный момент это единственное что от него нужно.


Doxygen is a documentation system for C++, C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, <b>C#</b>, and to some extent D.
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[2]: Code graph generator
От: Мишень-сан  
Дата: 05.01.10 10:08
Оценка:
Здравствуйте, yuske, Вы писали:

Y>doxygen вместе с Graphviz дает возможность строить графы наследования классов, графы вызова методов. Делал документацию содержащию такие графы на работе, смотрите подробно файл конфигурации doxygen'а. Числа 11 (как на работу попаду) примеры настроек могу скинуть, если еще вопрос будет актуален.


К сожалению, как я написал вначале, мне не удалось заставить doxygen сгенерить суммарный граф. Кучу мелких диграфов для каждой функции по отдельности он мне наклепал. А вот как заставить его смержить их в один большой граф — не соображу
Re[3]: Code graph generator
От: Мишень-сан  
Дата: 05.01.10 10:09
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Doxygen is a documentation system for C++, C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, <b>C#</b>, and to some extent D.


К сожалению, как я написал вначале, мне не удалось заставить doxygen сгенерить суммарный граф. Кучу мелких диграфов для каждой функции по отдельности он мне наклепал. А вот как заставить его смержить их в один большой граф — не соображу
Re[4]: Code graph generator
От: Sheridan Россия  
Дата: 05.01.10 10:20
Оценка:
Приветствую, Мишень-сан, вы писали:

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


Он не генерит "все в одном". Он генерит граф классов только если классы связаны между собой "родственными" связями. Если нужно "все в одном", то графы склейте друг с другом... Ну в смысле в паинте каком-ть или imagemagick'ом...
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re: Code graph generator
От: uhh  
Дата: 05.01.10 10:34
Оценка:
Здравствуйте, Мишень-сан, Вы писали:

МС>Доброго времени суток!

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

МС>Doxygen пробовал, но он, похоже, не строит общий граф вызовов.


МС>Не подскажет ли кто, куда пинать doxygen, или что-нибудь альтернативное?


МС>Зачем всё это надо — есть класс, наваяный умельцами 10 лет назад, занимает ~4K строк кода вместе с описанием. Руки чешутся потихоньку перепилить.


МС>Спасибо.


вот такая штука вроде умеет: sourcenav
Re[3]: Code graph generator
От: MozgC США http://nightcoder.livejournal.com
Дата: 05.01.10 12:01
Оценка:
Здравствуйте, Sheridan, Вы писали:

MC>> Присоединяюсь к вопросу, ищется такой инструмент для C#. NDepend не подходит так как сильно дорогой, а в принципе на данный момент это единственное что от него нужно.

S>Doxygen is a documentation system for C++, C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, <b>C#</b>, and to some extent D.

Че-то покопался немного... Я так понимаю что сгенерировать зависимости между приватными методами в пределах класса (когда надо какой-то убогий старый большой класс отрефакторить) — никак?
Re: Code graph generator
От: ilvi Россия  
Дата: 05.01.10 17:41
Оценка: 1 (1)
Здравствуйте, Мишень-сан, Вы писали:

МС>Доброго времени суток!

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

МС>Doxygen пробовал, но он, похоже, не строит общий граф вызовов.


МС>Не подскажет ли кто, куда пинать doxygen, или что-нибудь альтернативное?


МС>Зачем всё это надо — есть класс, наваяный умельцами 10 лет назад, занимает ~4K строк кода вместе с описанием. Руки чешутся потихоньку перепилить.


МС>Спасибо.


Может быть "understand for c++". Сейчас не вспомню все его возможности, но года три назад, когда достался проект уволившегося сотрудника и без документации, он мне очень помог. Как раз в нем смотрел дерево вызовов. Насчет дерева для всего класса не смогу сказать точно, но вот по функции строил дерево вызовов до стандартных функций.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Re[2]: Code graph generator
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 06.01.10 01:00
Оценка:
Здравствуйте, MozgC, Вы писали:

MC>Присоединяюсь к вопросу, ищется такой инструмент для C#.


Ну, кое что на эту тему есть в 5 решарпере.
... << RSDN@Home 1.2.0 alpha 4 rev. 1335 on Windows 7 6.1.7600.0>>
AVK Blog
Re: Code graph generator
От: humanist-TPV- Россия www.qarksoft.ru
Дата: 17.01.10 15:53
Оценка:
Здравствуйте, Мишень-сан, Вы писали:

МС>Доброго времени суток!

МС>Нужно построить по исходнику класса на С++ его граф вызовов, включающий все методы класса и функции, находящиеся в том же исходнике. Внешние зависимости можно выкинуть нафик.
МС>Doxygen пробовал, но он, похоже, не строит общий граф вызовов.
МС>Не подскажет ли кто, куда пинать doxygen, или что-нибудь альтернативное?
МС>Зачем всё это надо — есть класс, наваяный умельцами 10 лет назад, занимает ~4K строк кода вместе с описанием. Руки чешутся потихоньку перепилить.
Можно попробовать такие программки
1) Code Visualizer (www.codeDrawer.com) — простейшая в освоении программка, которая тем не менее сделает Вам граф вызовов в виде рисунка.
2) understand for c++ (как уже ранее советовал ilvi) — на любителя, но тожа можна. С учетом 3-го пункта, наверное, не стоит внимания.
3) Sparx Enterprise Architect (мой любимый микроскоп для забиваия гвоздей ) — это CASE tool, но требуемое Вам можно получить с помощью построения диаграммы вызовов (С++ поддерживается, если добавите pdb файлы).

Если быстро и просто и на один раз, то рекомендую п.1, если с Enterprise Architect уже есть опыт, то можно его использовать — помимо визуализации получите и модельку как основу для рефакторинга.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.