Программное обеспечение, помогающее понять исходный код

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

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

  • Платформа: Windows или Linux. Плагины для IDE тоже подойдут.
  • Поддерживаемые языки: C++ и Java, все, кроме этого, является плюсом.

Программное обеспечение должно хорошо работать с большими исходными кодами, такими как Linux.

SonarQube также может быть чем-то для вас. Я не использовал его много, поэтому у меня недостаточно знаний, чтобы рекомендовать его.
Вы пробовали OpenGrok? Настроить его относительно легко. vineelkumarreddy.com/2015/04/29/…
Просто для остальных: CodeScene — еще один коммерческий продукт. Его цель также состоит в том, чтобы понять команду и пути коммуникации, лежащие в основе кода, путем анализа истории коммитов.
выглядит Sourcetrail — хорошая альтернатива: github.com/CoatiSoftware/Sourcetrail и sourcetrail.com

Ответы (1)

Обновление 2019-08-27: этот инструмент подошел к концу и, похоже, больше не поддерживается.


В целом, я бы сказал, что ваш список пожеланий для такого бесплатного инструмента довольно длинный. В последней компании, в которой я работал, я отвечал за поддержку проектов и познакомился с метриками и анализом качества кода. Ниже дана информация о моих знаниях ~2 года назад. Единственный бесплатный инструмент, который примерно соответствует вашим требованиям, это

ConQAT , инструмент непрерывного анализа качества.

Это

  • анализирует Java, C++, C#, ABAP, ADA
  • бесплатно ( Apache 2 )
  • интегрируется в Eclipse, поэтому вы можете переименовывать переменные и т. д., как обычно
  • позволяет анализировать архитектурные ограничения и клоны кода
  • работает по крайней мере на винде, на линуксе не уверен. Он основан на Java, поэтому может работать и там, если вам не нужна поддержка C#.

Касательно

  • прост в использовании : ну, это зависит от того, что для вас означает «простой». Метрики построены с помощью графического интерфейса, так что в основном да. Однако вы должны иметь представление о метриках.
  • графическое изображение функций : не как в IDA Pro, а, например, в виде древовидных карт. Он также может визуализировать архитектуру, по крайней мере, до уровня класса.
  • большие исходные коды : я понятия не имею, насколько велик исходный код Linux. Он отлично работал в проекте C # с 130 000 LOC.

Другие примечания (на основе информации 2-летней давности):

  • Инструмент обновляется через нерегулярные промежутки времени, хотя система нумерации версий предполагает, что в год выпускается 2 выпуска.
  • Трудно получить поддержку, если вы не готовы платить за это. Я не нашел "сообщества", которое отвечало бы на вопросы.
  • Вы можете реализовать собственных поставщиков информации в Java.
Отличный ответ и отличный инструмент. Увы, после того, как вы опубликовали это, ссылка теперь указывает на сообщение в блоге, объявляющее, что это конец жизни :-(
@Mawg: спасибо за уведомление. Конечно, преемник, TeamScale, больше не предоставляется бесплатно. Исходный код ConQAT должен оставаться доступным под лицензией Apache2, но я сомневаюсь, что сообщество будет разрабатывать его, например, как проект Github. :-(