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

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

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

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

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

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

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

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

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

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

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

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

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

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

Статистический метод (критерий): как выбрать для анализа? SPSS

  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.
Читайте также:
Что значит экспертная программа мрт

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

Источник: moluch.ru

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

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

Требования

№ Наименование требования Уровень контроля 4 Уровень контроля 3 Уровень контроля 2 Уровень контроля 1 1 2 3 4 5 6 7 8 9
Контроль полноты и отсутствия избыточности исходных текстов + + + =
Контроль соответствия исходных текстов ПО его объектному (загрузочному) коду + = = +
Контроль связей функциональных объектов по управлению + = =
Контроль связей функциональных объектов по информации + = =
Контроль информационных объектов + = =
Контроль наличия заданных конструкций в исходных текстах + +
Формирование перечня маршрутов выполнения функциональных объектов + + =
Анализ критических маршрутов выполнения функциональных объектов + =
Анализ алгоритма работы функциональных объектов на основе блок-схем, диаграмм и т. п., построенных по исходным текстам контролируемого ПО + =

Источник: wikisec.ru

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

Статический анализ исходных текстов программ должен включать следующие технологические операции:

· контроль полноты и отсутствия избыточности исходных текстов ПО на уровне файлов;

· контроль соответствия исходных текстов ПО его объектному (загрузочному) коду.

3.2.4. Отчетность

По окончании испытаний оформляется отчет (протокол), содержащий результаты:

· контроля исходного состояния ПО;

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

· контроля соответствия исходных текстов ПО его объектному (загрузочному) коду.

Требования к третьему уровню контроля

Контроль состава и содержания документации

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

Кроме того, должна быть представлена «Пояснительная записка» (ГОСТ 19.404-79), содержащая основные сведения о назначении компонентов, входящих в состав ПО, параметрах обрабатываемых наборов данных (подсхемах баз данных), формируемых кодах возврата, описание используемых переменных, алгоритмов функционирования и т.п.

Контроль исходного состояния ПО

Требования полностью включают в себя аналогичные требования к четвёртому уровню контроля.

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

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

· контроль полноты и отсутствия избыточности исходных текстов ПО на уровне функциональных объектов (процедур);

· контроль связей функциональных объектов (модулей, процедур, функций) по управлению;

· контроль связей функциональных объектов (модулей, процедур, функций) по информации;

· контроль информационных объектов различных типов (например, локальных переменных, глобальных переменных, внешних переменных и т.п.);

· формирование перечня маршрутов выполнения функциональных объектов (процедур, функций).

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

Динамический анализ исходных текстов программ должен включать следующие технологические операции:

· контроль выполнения функциональных объектов (процедур, функций);

Читайте также:
Как сделать блок схему программы паскаль

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

Отчетность

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

· контроля полноты и отсутствия избыточности исходных текстов контролируемого ПО на уровне функциональных объектов (процедур);

· контроля связей функциональных объектов (модулей, процедур, функций) по управлению;

· контроля связей функциональных объектов (модулей, процедур, функций) по информации;

· контроля информационных объектов различных типов (например, локальных переменных, глобальных переменных, внешних переменных и т.п.);

· формирования перечня маршрутов выполнения функциональных объектов (процедур, функций);

· контроля выполнения функциональных объектов (процедур, функций);

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

Требования ко второму уровню контроля

Контроль состава и содержания документации

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

Контроль исходного состояния ПО

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

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

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

· контроль полноты и отсутствия избыточности исходных текстов контролируемого программного обеспечения на уровне функциональных объектов (функций);

· синтаксический контроль наличия заданных конструкций в исходных текстах ПО из списка (базы) потенциально опасных программных конструкций;

· формирование перечня маршрутов выполнения функциональных объектов (ветвей);

· анализ критических маршрутов выполнения функциональных объектов (процедур, функций) для заданных экспертом списков информацонных объектов.

· построение по исходным текстам контролируемого ПО блок-схем, диаграмм и т.п., и последующий сравнительный анализ алгоритма работы функциональных объектов (процедур, функций) и алгоритма работы, приведенного в “Пояснительной записке”.

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

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

· контроль выполнения функциональных объектов (ветвей);

· сопоставление фактических маршрутов выполнения функциональных объектов (ветвей) и маршрутов, построенных в процессе проведения статического анализа

Отчетность

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

· контроля полноты и отсутствия избыточности исходных текстов контролируемого программного обеспечения на уровне функциональных объектов (функций);

· синтаксического контроля наличия заданных конструкций в исходных текстах ПО из списка (базы) потенциально опасных конструкций;

· формирования перечня маршрутов выполнения функциональных объектов (ветвей);

· анализа критических маршрутов выполнения функциональных объектов (процедур, функций) для заданных экспертом списков информационных объектов;

· построения по исходным текстам контролируемого ПО блок-схем, диаграмм и т.п., и последующего сравнительного анализа алгоритма работы функциональных объектов (процедур, функций) и алгоритма работы, приведённого в “Пояснительной записке”;

· контроля выполнения функциональных объектов (ветвей);

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

Источник: megaobuchalka.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru