Для получения триального ключа
заполните форму ниже
Team License (базовая версия)
Enterprise License (расширенная версия)
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

** На сайте установлена reCAPTCHA и применяются
Политика конфиденциальности и Условия использования Google.
Запросите информацию о ценах
Новая лицензия
Продление лицензии
--Выберите валюту--
USD
EUR
GBP
RUB
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

** На сайте установлена reCAPTCHA и применяются
Политика конфиденциальности и Условия использования Google.
Для получения лицензии для вашего открытого
проекта заполните, пожалуйста, эту форму
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

** На сайте установлена reCAPTCHA и применяются
Политика конфиденциальности и Условия использования Google.
Для получения лицензии для вашего открытого
проекта заполните, пожалуйста, эту форму
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

** На сайте установлена reCAPTCHA и применяются
Политика конфиденциальности и Условия использования Google.
Мне интересно попробовать плагин на:
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

** На сайте установлена reCAPTCHA и применяются
Политика конфиденциальности и Условия использования Google.
Ваше сообщение отправлено.

Мы ответим вам на


Если вы так и не получили ответ, пожалуйста, проверьте папку
Spam/Junk и нажмите на письме кнопку "Не спам".
Так Вы не пропустите ответы от нашей команды.

>
>
Дорожная карта PVS-Studio на 2021 год

Дорожная карта PVS-Studio на 2021 год

08 Фев 2021

В начале года наша команда года провела несколько встреч и выработала внутреннюю карту развития компании и продукта PVS-Studio на 2021 год. Мы решили оформить часть наших планов в виде этой статьи. Неопубликованная часть планов секретна? Нет, но вряд ли нашим читателям будут интересны подробности по планам обучения отдельных сотрудников или когда и какой сервер мы планируем приобрести. Здесь мы опишем основные планы развития самого программного продукта PVS-Studio и его позиционирования.

0797_RoadMap_2021_ru/image1.png

PVS-Studio как продукт в целом

PVS-Studio является статическим анализатором общего назначения, и именно так мы продолжим его развивать. Однако в этом году мы сделаем уклон в сторону его позиционирования как средства статического тестирования защищённости приложений (Static Application Security Testing, SAST). Для этих целей мы сосредоточимся над поддержкой CWE, OWASP, SEI CERT, MISRA, AUTOSAR.

На данный момент PVS-Studio поддерживает анализ программ на языках C, C++, C#, Java. Также поддерживаются некоторые расширения языка C++, например, C++/CLI и C++/CX. В 2021 году мы не планируем реализовывать поддержку новых языков, но планируем развивать анализатор "вширь". А именно, хочется поддержать дополнительно несколько новых компиляторов (C, C++) для микроконтроллеров и некоторые среды разработки, такие как CLion.

Помимо усовершенствований, которые будут описаны ниже, ядра всех анализаторов (C++, C#, Java) будут развиваться по следующим направлениям:

  • Поддержка новых версий языков программирования;
  • Улучшение существующих диагностик с целью уменьшения количества ложных срабатываний;
  • Реализация новых диагностик общего назначения (GA);
  • Ручная аннотация функций в популярных библиотеках для увеличения количества обнаруживаемых дефектов;
  • Развитие внутренних механизмов анализаторов, таких, как анализ потоков данных, символьные вычисления, межпроцедурный и межмодульный анализ и т.д.

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

Примечание. Если вы не знакомы с терминами "анализ потока данных" и "ручная аннотация функций", то предлагаем познакомиться с публикацией "Технологии, используемые в анализаторе кода PVS-Studio для поиска ошибок и потенциальных уязвимостей".

Сайт

Новый сайт анализатора

Постоянное развитие анализатора требует обновление сайта, чтобы отражать актуальную информацию и организовывать понятный доступ к новым фичам с документацией. В какой-то момент продукт перерастает идеологию и возможности текущего сайта. Сейчас у нас наступил тот момент. И в первой половине 2021 года мы полностью обновим наш сайт, переработав размещение информации на нём и сделав новый дизайн.

Email подписка на новости

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

C++

MISRA C, MISRA C++, AUTOSAR

Будет продолжена поддержка стандартов кодирования MISRA C и MISRA C++. Но, помимо этого, пришло время также поддержать более современный набор правил, описываемый в The AUTOSAR C++14 Coding Guidelines. Этот документ является обновлением стандарта MISRA C++:2008, а также основан на других ведущих стандартах написания кода и исследованиях, проделанных организацией AUTOSAR.

Межмодульный анализ потока данных

Ядра анализатора PVS-Studio для C# и Java умеют в том или ином виде осуществлять межмодульный анализ. По ряду причин реализация межмодульного анализа в C++ анализаторе более сложна и постоянно откладывалась. В 2021 году мы чувствуем силы реализовать межмодульный анализ потока данных. Это позволит находить, например, такие ошибки, когда в функцию передаётся нулевой указатель, и эта функция, реализованная в другом юните трансляции, разыменовывает этот указатель, не выполнив предварительную проверку.

На всякий случай уточним. Нет, речь идёт не про модули из C++20. Поддержка модулей — это другая задача, которой мы тоже будем заниматься, но, возможно, не в этому году. Речь идёт про анализ, учитывающий взаимодействие функций, реализованных в разных *.cpp файлах (в разных единицах трансляции).

SAL

Планируется частично поддержать извлечение дополнительной информации из кода, размеченного с помощью языка аннотирования Microsoft Source-Code (SAL).

Компиляторы для embedded платформ

За прошедшие несколько лет PVS-Studio для C и C++ существенно расширила поддержку различных компиляторов, при этом мы концентрировались, в основном, на компиляторах для платформы ARM. В предстоящем году мы уделим внимание и более экзотическим платформам.

Эльбрус

Мы изучим вопрос возможности портировать ядро C++ анализатора на платформу Эльбрус. Около года назад мы уже думали о таком эксперименте, но компилятор под эту платформу отстаёт от современного стандарта языка C++. Анализатор PVS-Studio пишется с использование последних новшеств языка, так как нам ведь надо самим тренироваться с новыми конструкциями языка C++ :). Но здесь написание кода в таком стиле является минусом. Посмотрим, как обстоят дела в этом году, но пока ничего не обещаем.

CLion

Планируется выпустить плагин для среды разработки CLion. Это кроссплатформенная IDE для C и C++ от компании JetBrains. Кстати, если вы хотите стать бета-тестером этого плагина, то вы можете перейти по этой ссылке и заполнить форму. И мы свяжемся с вами, когда у нас появится первая его реализация.

Сейчас анализатор PVS-Studio для C++ можно использовать на Unix-подобных системах (Linux, macOS) совместно с большим количеством IDE и сборочных систем. Однако интеграция с такими кроссплатформенными IDE осуществляется через стандартные средства самой IDE, обычно в виде загрузки отчёта анализатора в формате предупреждений компилятора. Данный способ интеграции, хотя и вполне достаточный для работы, тем не менее проигрывает интеграции анализатора через расширение (плагин) для IDE, как в случае с плагином PVS-Studio для Visual Studio. Через IDE плагин пользователю доступно множество дополнительных возможностей анализатора, таких, как подавление сообщений, удобная разметка ложно-позитивных срабатываний и т.п.

В связи с тем, что для Unix-подобных систем, в отличии от Windows с её Visual Studio, нет одной наиболее распространённой IDE, до данного момента мы откладывали разработку полноценного плагина под какую-либо из кроссплатформенных IDE для языка C++. Тем не менее, так как сейчас мы видим, что популярность JetBrains CLion среди наших пользователей растёт каждый год, и у нас уже есть поддержка "близких" к этой IDE сред IntelliJ IDEA и Rider, мы решили, что пришло время поддержать и CLion.

C#

OWASP

При реализации новых диагностик планируется сосредоточиться на OWASP и особенно OWASP Top 10. На наш взгляд статический анализатор для C# очень сильно выиграет от увеличения количества диагностик из сферы безопасности.

.NET

Мы планируем добавить поддержку проектов на .NET 5, а также работу с .NET 5 SDK. Вместе с этим будет добавлен анализ кода, написанного на C# 9.

Если верить roadmap от Microsoft, выпуск новых версий .NET планируется каждый год. Следовательно, в 2021 планируется выпуск уже .NET 6, поддержку которого мы также хотим добавить.

Учесть особенности C# 8 и C# 9 в старых диагностиках

Хочется провести аудит старых диагностик, с целью посмотреть, насколько они учитывают новшества языка, появившиеся в версиях C# 8 и C# 9. Возможно, некоторые диагностики можно улучшить, и они начнут выдавать срабатывания на коде, использующие самые современные конструкции. Вряд ли таких случаев будет много, но провести такое исследование однозначно будет полезно.

Java

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

Прочее

Visual Studio Code

Возможно, в этом году мы реализуем плагин для Visual Studio Code, что позволит удобно просматривать отчёты, сгенерированные консольной версией анализатора. Сейчас для этого можно использовать утилиту C and C++ Compiler Monitoring UI, входящую в дистрибутив PVS-Studio. Или конвертировать отчёт в HTML формат. Это вполне рабочие варианты, но используя плагин для Visual Studio Code будет и удобнее работать с отчётом, и вносить правки в код.

Выше, в разделе про поддержку CLion, мы также писали про существующую ситуацию с "зоопарком" различных IDE для Unix-образных систем. Сейчас мы видим перспективу того, что именно Visual Studio Code, за счёт своей открытости и модульности, имеет шансы стать де-факто самой универсальной IDE для разработки под большое количество языков, компиляторов и платформ. В это ещё одна причина, по которой мы планируем уделить в предстоящем году внимание именно этой IDE.

Offline мероприятия

Помимо плана по разработке продукта, дорожная карта включает в себя задачи, связанные с рекламными активностями. Это наша внутренняя кухня, но один момент хочется озвучить публично.

Мы всегда активно участвовали в различных конференциях и других offline мероприятиях (описание, как прошло первое и второе полугодие 2019 года). В 2020 году почти все такие активности были свёрнуты, и 2021 год может пройти аналогично.

Нам очень не хватает offline мероприятий. Во-первых, это был отличный способ получить фидбек от наших клиентов, потенциальных пользователей и вообще узнать от посетителей, что происходит в мире программного обеспечения. Во-вторых, это был хороший способ сделать дополнительные касания, подогреть интерес к продукту. И, в-третьих, это позитивно сказывалось на сотрудниках. Они могли посещать мероприятия с целью передохнуть, других посмотреть и себя показать.

0797_RoadMap_2021_ru/image2.png

Поэтому мы подумали и решили попробовать в 2021 году организовать цикл маленьких собственных offline мероприятий. Это будет что-то среднее между бизнес-обедами и семинарами. Мы будем собирать представителей компаний-клиентов, а также тех, кто пока только рассматривает возможность приобретения лицензии. Мы будем рассказывать о новых возможностях PVS-Studio, о способах их интеграции с различными системами, такими как Jenkins, IncrediBuild, Travis CI, SonarQube. Для разнообразия, возможно будем приглашать и сторонних докладчиков, которые захотят рассказать что-то на тему статического анализа кода. И естественно будут дискуссии, ответы на вопросы и демонстрация, как и что работает.

Для простоты начать мы хотим с Москвы. А если нам понравится, как всё проходит, то мы расширим географию мероприятий. Мероприятия будут бесплатные для участников.

Вопрос к читателям. Есть ли здесь кто-то, кто уже хочет принять участие в таком мероприятии как слушатель? Если да, то просим написать нам, что вы хотели бы присутствовать в качестве слушателя или докладчика. Так мы сможем понять заинтересованность аудитории к таким offline активностям, и сможем лучше спланировать их проведение. Заранее спасибо.

Дополнительные ссылки

Популярные статьи по теме
PVS-Studio для Java

Дата: 17 Янв 2019

Автор: Андрей Карпов

В седьмой версии статического анализатора PVS-Studio мы добавили поддержку языка Java. Пришло время немного рассказать, как мы начинали делать поддержку языка Java, что у нас получилось и какие дальн…
Как и почему статические анализаторы борются с ложными срабатываниями

Дата: 20 Мар 2017

Автор: Андрей Карпов

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

Дата: 19 Май 2017

Автор: Андрей Карпов

Возможно, читатели помнят мою статью под названием "Эффект последней строки". В ней идёт речь о замеченной мной закономерности: ошибка чаще всего допускается в последней строке однотипных блоков текс…
Характеристики анализатора PVS-Studio на примере EFL Core Libraries, 10-15% ложных срабатываний

Дата: 31 Июл 2017

Автор: Андрей Карпов

После большой статьи про проверку операционной системы Tizen мне было задано много вопросов о проценте ложных срабатываний и о плотности ошибок (сколько ошибок PVS-Studio выявляет на 1000 строк кода)…
PVS-Studio ROI

Дата: 30 Янв 2019

Автор: Андрей Карпов

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

Дата: 21 Ноя 2018

Автор: Андрей Карпов

Краткое описание технологий, используемых в инструменте PVS-Studio, которые позволяют эффективно обнаруживать большое количество паттернов ошибок и потенциальных уязвимостей. Статья описывает реализа…
Как PVS-Studio оказался внимательнее, чем три с половиной программиста

Дата: 22 Окт 2018

Автор: Андрей Карпов

PVS-Studio, как и другие статические анализаторы кода, часто выдаёт ложные срабатывания. Но не стоит спешить считать странные срабатывания ложными. Это короткая история о том, как PVS-Studio вновь ок…
Бесплатный PVS-Studio для тех, кто развивает открытые проекты

Дата: 22 Дек 2018

Автор: Андрей Карпов

В канун празднования нового 2019 года команда PVS-Studio решила сделать приятный подарок всем контрибьюторам open-source проектов, хостящихся на GitHub, GitLab или Bitbucket. Им предоставляется возмо…
Любите статический анализ кода!

Дата: 16 Окт 2017

Автор: Андрей Карпов

Я в шоке от возможностей статического анализа кода, хотя сам участвую в разработке инструмента PVS-Studio. На днях я был искренне удивлён тому, что анализатор оказался умнее и внимательнее меня.
Главный вопрос программирования, рефакторинга и всего такого

Дата: 14 Апр 2016

Автор: Андрей Карпов

Вы угадали, ответ - "42". Здесь приводится 42 рекомендации по программированию, которые помогут избежать множества ошибок, сэкономить время и нервы. Автором рекомендаций выступает Андрей Карпов - тех…

Комментарии (0)

Следующие комментарии

На сайте установлена reCAPTCHA и применяются
Политика конфиденциальности и Условия использования Google.
Этот сайт использует куки и другие технологии, чтобы предоставить вам более персонализированный опыт. Продолжая просмотр страниц нашего веб-сайта, вы принимаете условия использования этих файлов. Если вы не хотите, чтобы ваши данные обрабатывались, пожалуйста, покиньте данный сайт. Подробнее →
Принять