2009-03-13 3 views
8

Существуют инструменты для сравнения кода с настраиваемым набором правил/стандартов кодирования для разных языков (а не для чистого статического анализа для общих дефектов). Примеры включают FxCop для кода .Net и CheckStyle для Java, но мне было интересно, какие примеры люди знают в мире C++.Какие существуют инструменты для сравнения кода C++ с правилами кодирования?

An existing question was asked regarding free tools который предоставил примеры, такие как Vera, но мне также было интересно узнать о коммерческих инструментах, которые могут быть доступны.

ответ

5

Полный список, что мне удалось произвести:

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

2

astyle является распространенным инструментом Unix, который переформатирует исходный файл в указанный стиль. Он поддерживает большинство C-подобных языков. Я не знаю подобных коммерческих инструментов.

+0

Я думаю, что вопрос скорее о идиомах и именах переменных, чем отступы и символы новой строки. –

2

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

В Visual Studio Team System Edition 2005/2008 действительно есть такие вещи. У них также есть возможность обеспечить набор правил для всей команды. Проверьте это.

5

Инструмент, используемый нами, был CodeWizard от Parasoft. Но я думаю, что новая версия называется «Parasoft C++ Test». На главной странице:

  • Статический анализ кода для соответствии с выбранным пользователем кодирования стандартов
  • Графический RuleWizard редактор для создания пользовательских кодирования правил
  • статического моделирования кода пути для идентификации потенциального выполнения ошибки
  • Автоматический анализ кода с графическим интерфейсом и прогресс отслеживание
  • Автоматизированная генерация и выполнение блока и компонентного уровня тесты
  • Гибкая структура заглушки
  • Полная поддержка для регрессионного тестирования
  • анализа покрытия
  • кода с кодом подсветкой
  • Ошибка выполнения памяти проверки во время блока выполнение теста
  • Инфраструктура развертывания полной команды для использования на настольных компьютерах и в командной строке
4

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Работа над этим инструментом - это моя дневная работа.

Я, очевидно, предвзято, но одной из основных особенностей QA C++ является стандартное применение кодирования. Например, мы выполняем JSF ++ и MISRA C++. Вы можете узнать больше об этом here.

+0

Этот ответ уместен, и я считаю, что включение вашего IP-адреса приемлемо, если это имеет отношение к вопросу. См. Этот вопрос http://meta.stackexchange.com/questions/741/what-is-the-most- appro-way-to-promote-yourself-using-stackoverflow/756#756 обсуждение этого вопроса. – ConcernedOfTunbridgeWells

1

я не t знать, ищете ли вы инструмент со встроенными правилами или хотите проверить свои пользовательские правила. Если это второй, вам может оказаться полезным реализовать поиск нежелательных шаблонов на основе regexp. В зависимости от ваших потребностей Metrix ++ http://metrixplusplus.sourceforge.net/ может предложить полезные рамки.

Смежные вопросы