Как коммерческие инструменты статического анализа Java соответствуют свободным? [закрытый]

Вы можете использовать expand.grid() для комбинации измерений и as.vector для получения данных в виде вектора.

Обратите внимание на порядок размеров!

dim1 <- c('a', 'b')
dim2 <- c('a', 'b', 'c')
dim3 <- c('a', 'b', 'c', 'd')

data <- array(1:24, c(2,3,4), dimnames = list(dim1, dim2, dim3))
data

cbind(expand.grid(dim1,  dim2, dim3), val = as.vector(data))
33
задан Alex Varju 16 October 2008 в 07:16
поделиться

5 ответов

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

, По моему опыту, Findbugs делает хорошее задание нахождения настоящих проблем, особенно если Вы фокусируетесь на ошибках Правильности, как их команда предполагает. Недавно разработчики Findbugs добавили некоторые основные проверки уязвимости системы обеспечения безопасности также. Coverity имеет низкий ложный положительный уровень особенно, если Вы не включаете их экспериментальные средства проверки, и Coverity Предотвращают, включает хорошую базу данных отслеживания для тенденции/кластерного анализа. Я еще не убежден, что их средства проверки поточной обработки (статичный или динамичный) работа - по крайней мере, они ничто не нашли интересным для нас. Разработчик Klocwork для Java возвращает более высокие ложные положительные стороны, но мы находим, что у них есть самая сильная проверка безопасности этих инструментов. Таким образом, это зависит от того, является ли Ваш приоритет качественной проверкой (Findbugs, Coverity) или анализ уязвимости системы обеспечения безопасности (Klocwork, или Укрепите). Некоторые наши разработчики также используют PMD для поддержки обзоров исходного кода, поскольку он помогает с общей очисткой кода.

А недавний проект, проводимый с NIST, названным ", НАСЫТЬТЕСЬ: Выставка Инструмента Статического анализа" рассмотрела большое разнообразие различных инструментов и их базовых подходов. https://samate.nist.gov/index.php/SATE.html и другие ссылки на этот проект такой как в OWASP. Общее открытие состоит в том, что различные инструменты имеют различные достоинства и недостатки, так используйте больше чем один, если Вы хотите сделать полное задание.

18
ответ дан 27 November 2019 в 19:28
поделиться

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

6
ответ дан 27 November 2019 в 19:28
поделиться

Одна функция, которую Вы несомненно найдете в коммерческий инструмент статического анализа (и что Вы не найдете легко в бесплатно распространяемом аналитическом инструменте, по крайней мере в 2008, во время OP)
Создание отчетов: тенденции качества программного обеспечения Мер со временем

, Как объяснено в этом вопрос о метриках кода , любой статический анализ кода сам по себе в не всегда значимый, потому что Вы могли иметь:

  • слишком много "дефектов" для фиксации
  • слишком много категорий дефекта сообщили

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

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

<час>

Обновление: с 2012 (4 года спустя), Гидролокатор (Теперь в 2018 названный" SonarQube") "Историческая информация" (иначе "Машина времени") в 4.x и 5.x Примечание серии .
они панели инструментов проекта были отброшены в (сентябрь 2016) SonarQube 6.1 : см. этот поток .
Они панель инструментов должна была бы быть воссоздана вручную через пользовательскую страницу .
SonarQube 6.5 , восстанавливает немного те панели инструментов со страницей Activity, которая заставляет (несколько предопределенные и одно настраиваемое) диаграммы отображать эволюцию проекта.

4
ответ дан 27 November 2019 в 19:28
поделиться

вот список коммерческих аналитических инструментов: http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis#Java_2

coverity имеет несколько инструментов:
http://www.coverity.com/html/coverity-readiness-manager-java.html : это должно быть на одном уровне с findbugs, и PMD, но с лучшей презентацией

предотвращают: http://www.coverity.com/html/prevent-for-java.html : низкие ЛОЖНЫЕ ПОЛОЖИТЕЛЬНЫЕ СТОРОНЫ.

поток анализатор: http://www.coverity.com/html/coverity-thread-analyzer-java.html : это - то, что отсутствует в большинстве инструментов с открытым исходным кодом.

1
ответ дан 27 November 2019 в 19:28
поделиться

У меня не было прямого опыта работы с Findbugs или PMD, но я встречал множество людей, которые сравнивали их с Klocwork и Coverity.

Мое общее мнение о обратная связь была такая:

Findbugs и PMD более "инструментальные". То, что вы запускаете на своем рабочем столе. Он обнаруживает широкий спектр потенциальных проблем, но имеет тенденцию быть шумным, что означает ложные срабатывания и разновидности «мне все равно». Он действительно находит хорошие вещи. Я слышал неоднозначные отзывы о его долгосрочном использовании. Некоторые считают, что окупаемость бесплатного инструмента бесконечна, однако ложные срабатывания имеют свою цену.

Неудивительно, что Klocwork и Coverity, которые стоят денег, как правило, больше ориентированы на решения, которые также могут лучше масштабироваться для работы с командами , имеет более эффективный, простой в использовании пользовательский интерфейс и, как правило, менее шумный. Похоже, их анализ делает более глубокий анализ и, следовательно, дает лучшие результаты, если вы провели параллельное сравнение. При внедрении инструмента в команде у вас будет разный энтузиазм по поводу его использования, а фактор шума - большая проблема, которая препятствует широкому внедрению. Конечно, есть такие вещи, как поддержка и т. Д.

В общем, поскольку Findbugs и PMD бесплатны, вы рассматриваете это как первый вариант. Многие компании видят ценность и выбирают Coverity или Klocwork в качестве долгосрочного решения, хотя я также вижу, что работают Findbugs и PMD. Они склонны находить разные вещи, и поэтому, если ваша цель - найти и исправить как можно больше, хорошо иметь комбинацию обоих.

Раскрытие информации: я работаю в Code Integrity Solutions (codeintegritysolutions.com), который является партнером of Coverity.

У меня будет разный энтузиазм по поводу использования инструмента, а фактор шума - большая проблема, которая не позволяет широко использовать его. Конечно, есть такие вещи, как поддержка и т. Д.

В общем, поскольку Findbugs и PMD бесплатны, вы рассматриваете это как первый вариант. Многие компании видят ценность и выбирают Coverity или Klocwork в качестве долгосрочного решения, хотя я также вижу, что работают Findbugs и PMD. Они склонны находить разные вещи, и поэтому, если ваша цель - найти и исправить как можно больше, хорошо иметь комбинацию обоих.

Раскрытие информации: я работаю в Code Integrity Solutions (codeintegritysolutions.com), который является партнером of Coverity.

У меня будет разный энтузиазм по поводу использования инструмента, а фактор шума - большая проблема, которая не позволяет широко использовать его. Конечно, есть такие вещи, как поддержка и т. Д.

В общем, поскольку Findbugs и PMD бесплатны, вы рассматриваете это как первый вариант. Многие компании видят ценность и выбирают Coverity или Klocwork в качестве долгосрочного решения, хотя я также вижу, что работают Findbugs и PMD. Они склонны находить разные вещи, и поэтому, если ваша цель - найти и исправить как можно больше, хорошо иметь комбинацию обоих.

Раскрытие информации: я работаю в Code Integrity Solutions (codeintegritysolutions.com), который является партнером of Coverity.

В общем, поскольку Findbugs и PMD бесплатны, вы рассматриваете это как первый вариант. Многие компании видят ценность и выбирают Coverity или Klocwork в качестве долгосрочного решения, хотя я также вижу, что работают Findbugs и PMD. Они склонны находить разные вещи, и поэтому, если ваша цель - найти и исправить как можно больше, хорошо иметь комбинацию обоих.

Раскрытие информации: я работаю в Code Integrity Solutions (codeintegritysolutions.com), который является партнером of Coverity.

В общем, поскольку Findbugs и PMD бесплатны, вы рассматриваете это как первый вариант. Многие компании видят ценность и выбирают Coverity или Klocwork в качестве долгосрочного решения, хотя я также вижу, что работают Findbugs и PMD. Они склонны находить разные вещи, и поэтому, если ваша цель - найти и исправить как можно больше, хорошо иметь комбинацию обоих.

Раскрытие информации: я работаю в Code Integrity Solutions (codeintegritysolutions.com), который является партнером of Coverity.

4
ответ дан 27 November 2019 в 19:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: