Особенности применения статистического анализатора программного кода PVS-Studio в учебном процессе | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 28 декабря, печатный экземпляр отправим 1 января.

Опубликовать статью в журнале

Библиографическое описание:

Особенности применения статистического анализатора программного кода PVS-Studio в учебном процессе / Е. В. Коптенок, А. В. Кузин, В. С. Лядов [и др.]. — Текст : непосредственный // Молодой ученый. — 2019. — № 27 (265). — С. 24-26. — URL: https://moluch.ru/archive/265/61418/ (дата обращения: 16.12.2024).



Для каждого, кто хотя бы раз сталкивался с разработкой(программированием) проекта, не зависимо от уровня сложности, технологий и рынка, известно, что больше 70 % всего программного кода состоит из блоков по обработке ошибок и критических ситуаций. При разработке продукта, не зависимо от тематики существует большое множество нюансов, при которых программа может дать сбой, который в свою очередь может привести к неизвестным по масштабу авариям программного продукта и последствиям для жизни пользователя.

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

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

Один из рассмотренных и проверенных является PVS-Studio. Данный продукт представляет собой утилиту для поиска опечаток, ошибок безопасности и всевозможных уязвимостей в исходном коде программного продукта. Утилита работает с семейством языков С: C, C++, C#, а также Java.

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

Утилита наиболее сильна в поиске:

– ошибок при работе с исключениями;

– опечаток;

– мёртвого/недостижимого кода;

– потере данных и утечки ресурсов на различных архитектурах;

– ошибок синхронизации.

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

Рис. 1. Описание ошибки в PVS Studio

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

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

Отчёт, который генерирует PVS-Studio имеет подробное описание каждой ошибки, объясняет из-за чего возникло исключение и предлагает решение для каждого рода ошибок.

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

В каждом отчёте присутствует ссылка на полный и подробный список ошибок, которые обнаруживает PVS-Studio, ошибки описаны для всех языков и стандартов, с которыми работает утилита. Для каждой ошибки приведён пример правильного и неправильного использования данных. Помимо этого, здесь можно ознакомиться со стандартом MISRA (Motor Industry Software Reliability Association — группа, разработавшая стандарт языка Си для ответственных встраиваемых систем.), соблюдая который значительно повышается безопасность продукта, разрабатываемого студентом.

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

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

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

Большим преимуществом для студента в использовании утилиты является то, что она распространяется бесплатно в академических целях, при вводе свободного лицензионного ключа “FREE-FREE-FREE-FREE” и указанием комментария в каждом исходном файле проекта, говорящего о том, что PVS Studio используется в академических целях.

Обобщая всё вышесказанного можно сказать, что PVS Studio является одним из лучших статистических анализаторов кода и удобных утилит для обучения и освоения материала студентами. Список языков программирования изучаемыми по программе университета студентами весь включён в утилиту, что поможет не менять инструмент для анализа кода на протяжении всего обучения.

Постоянное использование PVS-Studio в десятки раз сократит время на тестирование любого приложения, программируемого студентом. Ошибку, которую будет студент искать несколько минут/часов — утилита найдёт за минуту, с подробным объяснением возникшей уязвимости.

Инструмент так же поможет студенту следить за правильным оформлением кода, в связи с тем, что поиск опечаток — одно из главных его достоинств. Соблюдение стандарта MISRA поможет научиться студенту писать приложения безопасными, как для компьютера, так и для встраиваемых систем.

Утилита является кроссплатформенной для Windows, Linux и Mac OC, свободно интегрируемой с IDE: Visual Studio 2011/2013/2015/2017/2019 и IntelliJ IDEA, а плагин SonarQube свободно совместим с любой известной IDE для Windows и Linux. Всё это даёт возможность студенту обучаться языкам программирования и написанию алгоритмов на различных платформах и средах разработки сокращая время на: поиск уязвимостей во время конструирования, тестирование и отладку.

Литература:

  1. PVS-Studio [Электронный ресурс] — 2012. — Режим доступа: http://www.viva64.com/en/pvs-studio/.
  2. Белоусов, П. Средство оценки качества кода в MS Visual Studio [Электронный ресурс] — 2017. — Режим доступа: http://habrahabr.ru/post/111524/, свободный.
  3. Глухих, М. И. Программная инженерия: Обеспечение качества программных средств методами статического анализа [Текст] / М. И. Глухих, В. М. Ицыксон. — СПб: Изд. Политехн. ун-та, 2018. — 149 с.
  4. Статический анализ кода [Электронный ресурс] / Intel Corp. — Режим доступа: https://sоftwаrе.intel.cоm/ru-ru/аrticles/Stаtiс-cоdе-аnаlysis-ru, свободный.
Основные термины (генерируются автоматически): MISRA, PVS, студент, IDE, исходный код, ошибка, статистический анализатор кода, утилит, IDEA, программный продукт.


Похожие статьи

Типовые задачи по тестированию программного обеспечения с использованием диаграмм причин-следствий в процессе обучения студентов

Методика изучения тестирования программного обеспечения с использованием диаграмм причин-следствий студентами бакалавриата

Особенности изучения способа тестирования ветвей и операций отношений студентами бакалавриата в рамках дисциплины «Тестирование программного обеспечения»

Особенности реализации MVC-архитектуры в веб-приложениях

Особенности оценки качества и оптимизации алгоритмов симметричного шифрования

Особенности предобработки данных для применения машинного обучения

Особенности изучения способа тестирования базового пути студентами бакалавриата в рамках дисциплины «Тестирование программного обеспечения» (часть 2)

Особенности изучения способа тестирования базового пути студентами бакалавриата в рамках дисциплины «Тестирование программного обеспечения» (часть 1)

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

Методика работы над алгоритмической задачей как способ формирования ИКТ-компетентности на уроках информатики

Похожие статьи

Типовые задачи по тестированию программного обеспечения с использованием диаграмм причин-следствий в процессе обучения студентов

Методика изучения тестирования программного обеспечения с использованием диаграмм причин-следствий студентами бакалавриата

Особенности изучения способа тестирования ветвей и операций отношений студентами бакалавриата в рамках дисциплины «Тестирование программного обеспечения»

Особенности реализации MVC-архитектуры в веб-приложениях

Особенности оценки качества и оптимизации алгоритмов симметричного шифрования

Особенности предобработки данных для применения машинного обучения

Особенности изучения способа тестирования базового пути студентами бакалавриата в рамках дисциплины «Тестирование программного обеспечения» (часть 2)

Особенности изучения способа тестирования базового пути студентами бакалавриата в рамках дисциплины «Тестирование программного обеспечения» (часть 1)

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

Методика работы над алгоритмической задачей как способ формирования ИКТ-компетентности на уроках информатики

Задать вопрос