Презентация Статический анализатор кода PVS-Studio онлайн

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Статический анализатор кода PVS-Studio абсолютно бесплатно. Урок-презентация на эту тему содержит всего 85 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Статический анализатор кода PVS-Studio



Оцените!
Оцените презентацию от 1 до 5 баллов!
  • Тип файла:
    ppt / pptx (powerpoint)
  • Всего слайдов:
    85 слайдов
  • Для класса:
    1,2,3,4,5,6,7,8,9,10,11
  • Размер файла:
    3.61 MB
  • Просмотров:
    67
  • Скачиваний:
    0
  • Автор:
    неизвестен



Слайды и текст к этой презентации:

№1 слайд
PVS-Studio ООО СиПроВер Сайт
Содержание слайда: PVS-Studio ООО «СиПроВер» Сайт: www.viva64.com Контакты: support@viva64.com

№2 слайд
Статический анализатор кода
Содержание слайда: Статический анализатор кода PVS-Studio Выполняет анализ кода на языках: C, C++, C++/CLI, C++/CX, C# Поддерживаются проекты, разрабатываемые с помощью: Windows: Visual C++, Clang, MinGW, Visual C# Linux: Clang, GCC Plugin для Visual Studio 2010-2015 Интеграция с SonarQube, QtCreator, CLion, Eclipse CDT, Anjuta DevStudio и т.д. Утилита Standalone

№3 слайд
На начало года в PVS-Studio
Содержание слайда: На начало 2017 года в PVS-Studio реализовано C, C++ диагностик: 349 C# диагностик: 130 Подробная on-line документация на русском и английском языке PDF

№4 слайд
Основные возможности Быстрый
Содержание слайда: Основные возможности Быстрый старт (мониторинг компиляции) Windows утилита: CLMonitoring Linux утилита: pvs-studio-analyzer Прямая интеграция анализатора в системы автоматизации сборки и утилита BlameNotifier (рассылка писем) Режим автоматического анализа изменённых файлов Отличная масштабируемость Работа с ложными срабатываниями

№5 слайд
Почему нужны анализаторы
Содержание слайда: Почему нужны анализаторы кода? Почему команда PVS-Studio выбрала C, C++ и C#?

№6 слайд
Почему C и C ? Эффективные,
Содержание слайда: Почему C и C++? Эффективные, но сложные языки, в которых легко допустить ошибку Причём, так дело обстоит десятилетиями и вряд ли изменится Давайте проверим с помощью PVS-Studio первую версию компилятора Cfront, вышедшую в свет в 1985. “К тридцатилетию первого C++ компилятора: ищем ошибки в Cfront” http://www.viva64.com/ru/b/0355/

№7 слайд
Ошибка в компиляторе Cfront
Содержание слайда: Ошибка в компиляторе Cfront (1985)

№8 слайд
Прошло лет Ничего не
Содержание слайда: Прошло 30 лет Ничего не изменилось. Язык C++ всё так же сложен и опасен. Размер кодовой базы растёт, и все важнее использовать инструменты статического анализа Давайте проверим с помощью PVS-Studio код современного компилятора Clang 2016 год. “Находим ошибки в коде проекта LLVM с помощью анализатора PVS-Studio” http://www.viva64.com/ru/b/0446/

№9 слайд
Clang ошибка найдена в октябре
Содержание слайда: Clang (ошибка найдена в октябре 2016)

№10 слайд
Почему C ? Быть может с C
Содержание слайда: Почему C#? Быть может с C# ситуация лучше? Некоторые типы ошибок в C# невозможны Поэтому лучше, но не сильно На месте остаются опечатки, логические ошибки и т.д. Да и от того, что указатели назвали ссылками лучше не стало Мы видим всё ту же ошибку с нулевой ссылкой Давайте проверим, например, проект Microsoft PowerShell: http://www.viva64.com/ru/b/0447/

№11 слайд
Такие ошибки актуальны и для C
Содержание слайда: Такие ошибки актуальны и для C#

№12 слайд
Мы можем очень долго
Содержание слайда: Мы можем очень долго демонстрировать подобные примеры Анализатор PVS-Studio легко находит ошибки в известных проектах: Linux kernel - http://www.viva64.com/ru/b/0460/ GCC - http://www.viva64.com/ru/b/0425/ MSBuild - http://www.viva64.com/ru/b/0424/ Qt - http://www.viva64.com/ru/b/0424/ И так далее - http://www.viva64.com/ru/inspections/ Это говорит о востребованности статического анализа кода Давайте посмотрим какие ошибки умеет искать PVS-Studio

№13 слайд
Диагностические возможности
Содержание слайда: Диагностические возможности PVS-Studio

№14 слайд
Ошибки при переносе кода на
Содержание слайда: Ошибки при переносе кода на 64-битные платформы

№15 слайд
Адрес локальной переменной
Содержание слайда: Адрес локальной переменной возвращается из функции по ссылке

№16 слайд
Арифметическое переполнение,
Содержание слайда: Арифметическое переполнение, потеря значимости

№17 слайд
Выход за границу массива
Содержание слайда: Выход за границу массива

№18 слайд
Мёртвый код
Содержание слайда: Мёртвый код

№19 слайд
Недостижимый код
Содержание слайда: Недостижимый код

№20 слайд
Неинициализированные
Содержание слайда: Неинициализированные переменные

№21 слайд
Неиспользуемые переменные и
Содержание слайда: Неиспользуемые переменные и аргументы

№22 слайд
Некорректные операции сдвига
Содержание слайда: Некорректные операции сдвига

№23 слайд
Неопределенное поведение
Содержание слайда: Неопределенное поведение

№24 слайд
Неправильная работа с типами
Содержание слайда: Неправильная работа с типами

№25 слайд
Неправильное представление о
Содержание слайда: Неправильное представление о работе функции/класса

№26 слайд
Отсутствие виртуального
Содержание слайда: Отсутствие виртуального деструктора

№27 слайд
Оформление кода не совпадает
Содержание слайда: Оформление кода не совпадает с логикой его работы

№28 слайд
Ошибки при работе с
Содержание слайда: Ошибки при работе с исключениями

№29 слайд
Переполнение буфера
Содержание слайда: Переполнение буфера

№30 слайд
Проблемы безопасности
Содержание слайда: Проблемы безопасности

№31 слайд
Путаница с приоритетом
Содержание слайда: Путаница с приоритетом операций

№32 слайд
Разыменование нулевого
Содержание слайда: Разыменование нулевого указателя / нулевой ссылки

№33 слайд
Ошибки синхронизации
Содержание слайда: Ошибки синхронизации

№34 слайд
Целочисленное деление на
Содержание слайда: Целочисленное деление на 0

№35 слайд
Опечатки и Copy-Paste
Содержание слайда: Опечатки и Copy-Paste Анализатор PVS-Studio эффективно выявляет опечатки и последствия неудачного Copy-Paste В анализаторе реализовано много диагностик для выявления ошибок этого рода Остановимся на них чуть подробнее и рассмотрим несколько примеров ошибок этого типа Дополнительно рекомендуем для чтения интересную статью “Эффект последней строки” - http://www.viva64.com/ru/b/0260/

№36 слайд
Опечатки и Copy-Paste пример N
Содержание слайда: Опечатки и Copy-Paste (пример N1)

№37 слайд
Опечатки и Copy-Paste пример N
Содержание слайда: Опечатки и Copy-Paste (пример N2)

№38 слайд
Опечатки и Copy-Paste пример N
Содержание слайда: Опечатки и Copy-Paste (пример N3)

№39 слайд
Опечатки и Copy-Paste пример N
Содержание слайда: Опечатки и Copy-Paste (пример N4)

№40 слайд
Опечатки и Copy-Paste пример N
Содержание слайда: Опечатки и Copy-Paste (пример N5)

№41 слайд
Опечатки и Copy-Paste пример N
Содержание слайда: Опечатки и Copy-Paste (пример N6)

№42 слайд
Мы показали вам малую часть
Содержание слайда: Мы показали вам малую часть того, что может находить анализатор PVS-Studio Подробная таблица диагностических возможностей: http://www.viva64.com/ru/w/ Там же вы найдете подробное описание всех диагностик

№43 слайд
Демонстрация возможностей
Содержание слайда: Демонстрация возможностей PVS-Studio Для демонстрации возможностей анализатора мы проверяем открытые проекты. На начало 2017 года нами проверено 280 проектов. Побочный результат: в этих проектах нашей командой было найдено 10700 ошибок Это именно 10700 ошибок, а не количество сообщений, выданных анализатором

№44 слайд
Демонстрация возможностей
Содержание слайда: Демонстрация возможностей PVS-Studio Благодаря нашей команде и анализатору PVS-Studio, в открытых проектах исправили более 10000 ошибок Вы можете увидеть все эти ошибки здесь: http://www.viva64.com/ru/examples/ База ошибок постоянно пополнятся и её можно использовать при написании статей о качестве кода и составлении стандартов кодирования

№45 слайд
Демонстрация возможностей
Содержание слайда: Демонстрация возможностей PVS-Studio В среднем, в одном открытом проекте мы нашли 10700 / 280 = 38 ошибок 38 ошибок на проект - это мало Поэтому важно подчеркнуть, что это - побочный эффект У нас нет цели найти как можно больше ошибок. Часто мы останавливаемся, когда нашли достаточное количество дефектов в проекте для написания статьи.

№46 слайд
Демонстрация возможностей
Содержание слайда: Демонстрация возможностей PVS-Studio Мы добились колоссальных результатов в устранении ошибок в мире open-source проектов, не ставя такую цель В этом нам помогли: мощные диагностические возможности PVS-Studio возможность быстрого анализа даже незнакомых проектов

№47 слайд
Правильный сценарий
Содержание слайда: Правильный сценарий использования Конечно, интересно и полезно запустить анализатор PVS-Studio и найти ошибку, которую до этого безуспешно искали 50 часов http://www.viva64.com/ru/b/0221/ Хорошо проверять проекты и описывать найденные ошибки, как делаем это мы в рекламных целях http://www.viva64.com/ru/inspections/ Но следует помнить, что разовые проверки - это неправильный способ использования анализаторов кода!

№48 слайд
Правильный сценарий
Содержание слайда: Правильный сценарий использования Статический анализатор приносит пользу, когда он используется регулярно Два основных варианта: Автоматический анализ изменённого кода Ночные проверки Подробнее эти режимы рассмотрены в документации

№49 слайд
Кратко о внутреннем
Содержание слайда: Кратко о внутреннем устройстве PVS-Studio

№50 слайд
Используемые технологии На
Содержание слайда: Используемые технологии На примерах было продемонстрировано, что PVS-Studio эффективно выявляет разнообразные типы ошибок Кратко перечислим технологии, которые положены в основу анализатора Подробнее эта тема раскрыта в статье “Как PVS-Studio ищет ошибки: методики и технологии” http://www.viva64.com/ru/b/0466/

№51 слайд
Используемые технологии
Содержание слайда: Используемые технологии Сопоставление с шаблоном (pattern-based analysis) на основе абстрактного синтаксического дерева применяется для поиска мест в исходном коде, которые похожи на известные шаблоны кода с ошибкой.

№52 слайд
Используемые технологии Вывод
Содержание слайда: Используемые технологии Вывод типов (type inference) на основе семантической модели программы позволяет анализатору иметь полную информацию о всех переменных и выражениях, встречающихся в коде.

№53 слайд
Используемые технологии
Содержание слайда: Используемые технологии Символьное выполнение (symbolic execution) позволяет вычислять значения переменных, которые могут приводить к ошибкам, производить проверку диапазонов (range checking) значений Анализ потока данных (data-flow analysis) используется для вычисления ограничений, накладываемых на значения переменных при обработке различных конструкций языка. Например, какие значения может принимать переменная внутри блоков if/else.

№54 слайд
Используемые технологии
Содержание слайда: Используемые технологии Аннотированние методов (method annotations) предоставляет больше информации об используемых методах, чем может быть получено путём анализа только их сигнатуры. C/C++. На данный момент проаннотировано 6570 функций (стандартные библиотеки C и C++, POSIX, MFC, Qt, ZLib и так далее). C#. На данный момент проаннотировано 920 функций.

№55 слайд
Используемые технологии Для
Содержание слайда: Используемые технологии Для разработки эффективных диагностик наша команда использует большой набор регрессионных тестов Написан специальный инструментарий для работы с тестовой базой открытых проектов

№56 слайд
Используемые технологии
Содержание слайда: Используемые технологии Тестовая база: C++ Windows (Visual C++): 120 проектов C++ Linux (GCC): ещё 34 проекта C# Windows: 54 проекта Всего мы используем 7 методик тестирования нашего проекта См. раздел “Тестирование PVS-Studio” http://www.viva64.com/ru/b/0466/

№57 слайд
Использование PVS-Studio
Содержание слайда: Использование PVS-Studio

№58 слайд
Думаю, вы уже устали, поэтому
Содержание слайда: Думаю, вы уже устали, поэтому минутка юмора Думаю, вы уже устали, поэтому минутка юмора Кратко суть статического анализа кода сводится к следующему:

№59 слайд
Использование PVS-Studio
Содержание слайда: Использование PVS-Studio: внедрение Бывает непросто начать использовать статический анализ в большом проекте Непонятно, что делать с сообщениями в старом коде… Мы предлагаем решение: база разметки Подробнее: http://www.viva64.com/ru/b/0364/

№60 слайд
Использование PVS-Studio
Содержание слайда: Использование PVS-Studio: подавление ложных срабатываний Различные способы подавить ложные срабатывания в конкретных строках кода Подавление ложных срабатываний в макросах Подавление ложных предупреждений с помощью файлов конфигурации диагностик pvsconfig Подробнее: http://www.viva64.com/ru/m/0017/

№61 слайд
Использование PVS-Studio
Содержание слайда: Использование PVS-Studio: исключение из анализа Возможность исключить из анализа файлы по имени, папке или маске Интерактивная фильтрация результатов анализа (лога) в окне PVS-Studio: по коду диагностики по имени файла по включению слова в текст диагностики

№62 слайд
Использование PVS-Studio
Содержание слайда: Использование PVS-Studio: автоматический анализ файлов после их перекомпиляции Наиболее эффективно исправить ошибку сразу после того, как она появилась в коде

№63 слайд
Использование PVS-Studio
Содержание слайда: Использование PVS-Studio: масштабируемость Поддержка многоядерных и многопроцессорных систем с настройкой количества используемых ядер Поддержка IncrediBuild

№64 слайд
Использование PVS-Studio
Содержание слайда: Использование PVS-Studio: непрерывная интеграция Запуск из командной строки для проверки всего решения: позволяет интегрировать PVS-Studio в ночные сборки, чтобы утром у всех был свежий лог Сохранение и загрузка результатов анализа: можно ночью проверить код, сохранить результаты, а утром загрузить их и смотреть Утилита BlameNotifier: инструмент позволяет рассылать письма разработчикам об ошибках, которые PVS-Studio нашел во время ночного прогона Использование относительных путей в файлах отчета

№65 слайд
Использование PVS-Studio
Содержание слайда: Использование PVS-Studio: прочее Удобная online-справка по всем диагностикам, которая доступна и из программы, и на сайте, а также документация в .pdf одним файлом Интерактивная фильтрация результатов анализа (лога) в окне PVS-Studio Статистика ошибок в Excel Автоматическая проверка на наличие новых версий PVS-Studio

№66 слайд
Использование PVS-Studio
Содержание слайда: Использование PVS-Studio: Linux С PVS-Studio легко работать в Linux Но, чтобы не гадать с настройками и ключами запуска, просим познакомиться с инструкцией Как запустить PVS-Studio в Linux: http://www.viva64.com/ru/m/0036/ Я знаю, что мы все не любим читать инструкции. Но поверьте, этот тот случай, когда всё просто, кратко и экономит ваше время!

№67 слайд
Использование PVS-Studio
Содержание слайда: Использование PVS-Studio: быстрый старт Отдельного внимания заслуживает возможность быстро попробовать PVS-Studio на любом проекте Для этого можно отследить запуски компилятора и собрать всю необходимую для анализа информацию Windows: Утилита Standalone Инструкция: http://www.viva64.com/ru/m/0033/ Linux Утилита pvs-studio-analyzer Инструкция: см. «Быстрый старт» в документе http://www.viva64.com/ru/m/0036/

№68 слайд
Использование PVS-Studio
Содержание слайда: Использование PVS-Studio: SonarQube Для импорта результатов анализа в SonarQube мы разработали плагин sonar-pvs-studio-plugin Использование плагина позволяет добавлять сообщения, найденные анализатором PVS-Studio, в базу сообщений сервера SonarQube

№69 слайд
Использование PVS-Studio
Содержание слайда: Использование PVS-Studio: SonarQube Подробности изложены в статье «Контролируем качество кода с помощью платформы SonarQube» http://www.viva64.com/ru/b/0452/

№70 слайд
Скачать и попробовать
Содержание слайда: Скачать и попробовать PVS-Studio

№71 слайд
Скачать и попробовать
Содержание слайда: Скачать и попробовать PVS-Studio Можно скачать и попробовать демонстрационную версию Windows: http://www.viva64.com/ru/pvs-studio-download/ Linux: http://www.viva64.com/ru/pvs-studio-download-linux/ Про ограничения демонстрационной версии: http://www.viva64.com/ru/m/0009/ Вы можете написать нам и получить на время полную версию: support@viva64.com

№72 слайд
Клиенты
Содержание слайда: Клиенты

№73 слайд
Клиенты
Содержание слайда: Клиенты:

№74 слайд
Клиенты
Содержание слайда: Клиенты:

№75 слайд
Купить PVS-Studio
Содержание слайда: Купить PVS-Studio

№76 слайд
Типы лицензий
Содержание слайда: Типы лицензий

№77 слайд
Индивидуальные лицензии Мы
Содержание слайда: Индивидуальные лицензии Мы позиционируем свой продукт как B2B решение и у нас нет индивидуальных лицензий Почему так получилось: http://www.viva64.com/ru/b/0320/ Индивидуальные разработчики могут воспользоваться вариантом бесплатного лицензирования Как использовать PVS-Studio бесплатно: http://www.viva64.com/ru/b/0457/

№78 слайд
Купить PVS-Studio Для заказа
Содержание слайда: Купить PVS-Studio Для заказа лицензии и получения информации о ценах, пожалуйста, напишите нам: support@viva64.com

№79 слайд
Помимо приобретения лицензии
Содержание слайда: Помимо приобретения лицензии на статический анализатор кода PVS-Studio возможны другие варианты сотрудничества

№80 слайд
Сотрудничество аудит
Содержание слайда: Сотрудничество: аудит Выполнение аудита кода и правка ошибок Примеры сотрудничества подобного типа: Как команда PVS-Studio улучшила код Unreal Engine: http://www.viva64.com/ru/b/0330/ Как перенести проект размером в 9 млн строк кода на 64-битную платформу: http://www.viva64.com/ru/b/0342/ Мы можем на регулярной основе контролировать качество кода и вносить в него правки Имеем опыт работ в этом направлении, но эта информация попадает под NDA

№81 слайд
Сотрудничество На базе нашего
Содержание слайда: Сотрудничество На базе нашего анализатора мы можем разработать на заказ специализированное решение Мы также готовы обсуждать сотрудничество, кто готов за процент с продаж привести к нам клиентов По этим и другим вопросам: support@viva64.com

№82 слайд
Презентация подходит к концу
Содержание слайда: Презентация подходит к концу Спасибо всем, кто добрался сюда

№83 слайд
Полезные ссылки Расскажем о
Содержание слайда: Полезные ссылки Расскажем о некоторых интересных и полезных материалах, которые можно найти на сайте компании Электронная книга «Главный вопрос программирования, рефакторинга и всего такого» - http://www.viva64.com/ru/b/0391/ Электронная книга «Разработки 64-битных приложений на языке Си/Си++» - http://www.viva64.com/ru/l/full/

№84 слайд
Полезные ссылки Как лет назад
Содержание слайда: Полезные ссылки Как 10 лет назад начинался проект PVS-Studio: http://www.viva64.com/ru/b/0465/ Контролируем качество кода с помощью платформы SonarQube: http://www.viva64.com/ru/b/0452/ Руководство по разработке модулей расширений на C# для Visual Studio 2005-2012 и Atmel Studio: http://www.viva64.com/ru/a/0082/

№85 слайд
Всем спасибо! До свидания
Содержание слайда: Всем спасибо! До свидания Написать письмо: support@viva64.com Подписаться на твиттер: @Code_Analysis Скачать PVS-Studio для Windows: http://www.viva64.com/ru/pvs-studio/ Скачать PVS-Studio для Linux: http://www.viva64.com/ru/pvs-studio-download-linux/

Скачать все slide презентации Статический анализатор кода PVS-Studio одним архивом: