Проект OovAide на http://sourceforge.net/projects/oovaide/ или на github имеет несколько функций, которые могут помочь. Он использует компилятор CLang для получения точной информации из исходного кода. Он сканирует каталоги , которые ищут исходный код, и собирает информацию в меньший набор данных, содержащий информацию, необходимую для анализа.
Одна концепция называется зонами.Он показывает отношения между классами на очень высокого уровня, так как каждый класс, как показано на диаграмме, и показаны линии связи. Это позволяет диаграмм, чтобы показать сотни или тысячи классов. На дисплее диаграммы зоны программы OovAide есть опция «Показать детские зоны», , которая группирует классы, находящиеся в пределах папок, расположенных ближе друг к другу. Существуют также фильтры каталогов, которые позволяют уменьшить количество классов , показанных на диаграмме для очень больших проектов. Пример диаграмм зоны и как они работают здесь показано: http://oovaide.sourceforge.net/articles/ZoneDiagrams.html
Если каталоги назначаются типы компонентов в настройках сборки, то диаграмма компонент будет отображаться зависимостей между компонентами. Этот даже показывает, какие компоненты зависят от внешних компонентов, таких как GTK или других внешних библиотек.
Следующий уровень вниз показывает что-то вроде диаграмм классов UML, но показывает все отношения , а не только агрегацию и наследование. Он может показывать классы , которые используются в методах или классах, которые передаются как методы . Любой класс можно выбрать как отправную точку, затем до класс добавит диаграмму, отображается список, который позволяет просматривать , какие классы будут отображаться по типу отношений.
Нижний уровень показывает диаграммы последовательности. Это позволяет перемещаться вверх или вниз по дереву вызовов, показывая классы, содержащие методы.
Если у вас есть исходный код, что именно вы подразумеваете в первую очередь под «обратным инженером»? – SingleNegationElimination 2010-11-23 23:50:57
Вы ожидаете, что dissasembler или декомпилятор обнаружит пакеты, вытащите элементы пользовательского интерфейса из кода, отличного от UI, или что-нибудь близкое к этому? – Falmarri 2010-11-23 23:52:59