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

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

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

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №22 (208) июнь 2018 г.

Дата публикации: 02.06.2018

Статья просмотрена: 490 раз

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

Демидов П. Д. Статический анализ исходного кода в обучении и разработке программного обеспечения // Молодой ученый. — 2018. — №22. — С. 38-39. — URL https://moluch.ru/archive/208/50975/ (дата обращения: 14.11.2019).



При создании любой системы раннее обнаружение и устранение ошибок значительно облегчает дальнейшую работу.

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

Статический анализ можно рассматривать как автоматизированный процесс обзора кода. Инструменты статического анализа непрерывно обрабатывают исходные тексты программ и выдают программисту рекомендации обратить повышенное внимание на определенные участки кода. [1]

Виды статического анализа

  1. Статический анализ на основе шаблонов

В своей простейшей форме инструмент статического анализа сканирует код и проверяет его на один или несколько наборов правил. Например, разработчики иногда пишут "\0" вместо нулевого символа '\0'. Эта ошибка может привести к повреждению памяти и сбою программы. Инструмент статического анализа находит эти шаблоны в коде и сообщает о возможных проблемах. Такой статический анализ известен как статический анализ на основе шаблонов.

  1. Анализ потока

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

  1. Дополнительные типы анализа

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

Преимущества автоматизированного статического анализа

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

  1. Более быстрый цикл разработки

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

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

  1. Более низкая плотность дефектов

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

Применение инструментов статического анализа вобучении студентов

Инструменты статического анализа могут находить применение и в обучении. В качестве примера можно рассмотреть интегрированную среду обучения ВоГУ. [2] Одним из ее компонентов является дистанционный практикум по программированию с автоматической проверкой решений. [3] Система позволяет студентам и другим пользователям проверить свои знания в разных областях программирования решением задач. Решение будет признано правильным только в том, случае, если результат выполнения программы, отправленной пользователем, будет совпадать с ожидаемым. Помимо этого, решение анализируется по таким критериям, как затраты оперативной памяти и процессорного времени.

Результат проверки решения в системе позволяет сделать выводы о корректности его вывода и оптимальности использования ресурсов, однако не дает информации о безопасности решения и соответствия стиля кода стандартам, принятым в индустрии. Эта информация может быть восполнена средствами статического анализа. Электронный ресурс содержит более 1100 заданий разной тематики и сложности и принимает решения на многих известных языках программирования. [4] В связи с этим, актуальность имеют многоязычные статические анализаторы. Они позволяют выполнять статический анализ исходных текстов программ на разных языках программирования с использованием универсального интерфейса ввода/вывода.

Заключение

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

Литература:

  1. Статический анализ кода // PVS-Studio. — URL: https://www.viva64.com/ru/t/0046/ (дата обращения: 27.05.2018).
  2. Ржеуцкая С. Ю. Междисциплинарное взаимодействие в интегрированной информационной среде обучения технического вуза / С. Ю. Ржеуцкая, М. В. Харина // Открытое образование. — № 2. — 2017. — С. 21–28.
  3. Андрианов, И. А. Архитектура электронного ресурса для обучения информационно-коммуникационным технологиям / И. А. Андрианов, И. А. Петров, С. Ю. Ржеуцкая // Вузовская наука — региону: материалы шестой всерос. науч.-техн. конф. — Вологда: ВоГТУ, 2008. — С. 44–47.
  4. Андрианов И. А., Разработка и особенности использования дистанционного лабораторного практикума по программированию / И. А. Андрианов, Н. О. Менухова // Современное общество, образование и наука: Сб. науч. тр. по материалам Междунар. науч.-практ. конф. — 2012. — С. 10–12.
Основные термины (генерируются автоматически): статический анализ, раннее обнаружение, исходный текст программ, статический анализ кода, анализ потока, основа шаблонов, дефект, инструмент.


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

Статический анализатор кода на основе взаимодействия...

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

Методы верификации программного обеспечения

Статический анализ программы — это исследование выполняется без фактического выполнения программы. В основном исследуется определенная версия исходного кода. Динамический анализ дает анализировать все пути выполнения программы.

Обзор различных средств фаззинга как инструментов...

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

Применение интеллектуальных технологий в процессе...

Статический анализ исходных текстов программ.

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

Проверка корректности программного обеспечения

программное обеспечение, статический анализ, динамический анализ, ошибка, код программы, SMT, исходный код, символьное

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

Анализ методов обнаружения вредоносных программ

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

Современные технологии обнаружения и уничтожения... Анализ методов обнаружения вредоносных программ.

Современные системы автоматизированного динамического...

Анализ методов обнаружения вредоносных программ.

Статический анализ исходного кода в обучении и разработке программного обеспечения.

Статический анализатор кода на основе взаимодействия...

Анализ методов тематического моделирования текстов на...

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

Метод автоматической классификации документов в задаче...

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

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

Статический анализатор кода на основе взаимодействия...

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

Методы верификации программного обеспечения

Статический анализ программы — это исследование выполняется без фактического выполнения программы. В основном исследуется определенная версия исходного кода. Динамический анализ дает анализировать все пути выполнения программы.

Обзор различных средств фаззинга как инструментов...

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

Применение интеллектуальных технологий в процессе...

Статический анализ исходных текстов программ.

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

Проверка корректности программного обеспечения

программное обеспечение, статический анализ, динамический анализ, ошибка, код программы, SMT, исходный код, символьное

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

Анализ методов обнаружения вредоносных программ

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

Современные технологии обнаружения и уничтожения... Анализ методов обнаружения вредоносных программ.

Современные системы автоматизированного динамического...

Анализ методов обнаружения вредоносных программ.

Статический анализ исходного кода в обучении и разработке программного обеспечения.

Статический анализатор кода на основе взаимодействия...

Анализ методов тематического моделирования текстов на...

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

Метод автоматической классификации документов в задаче...

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

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