Диплом: Современные методы статического и динамического анализа программ для автоматизации процессов повышения качества программного обеспечения ОАО «Аурат»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
92
Обфускаторы применяются в ОАО «Аурат» с целью защиты
программного обеспечения и позволяют внести изменения в названия
переменных и классов, изменить недостижимые участки кода при исполнении
программы, добавлять функции, операции, циклы, выполнение которых не
влияет на результаты работы программного обеспечения.
При работе с программным обеспечением они также используют метрики
сложности потока управления, основанные на анализе графов потока
управления. Примерами таких метрик выступают метрика Мак-Кейба, метрика
Хансена, метрика циклической сложности, метрика Маерса.
Оценка работы обфускаторов по различным метрикам показала, что
наибольшую защиту программному обеспечению позволяет обеспечить
обфускатор eazfuskator, показавший наибольшие результаты по метрикам
Джилба, Чепина и Хансена. Поэтому рекомендуем специалистам ОАО «Аурат»
использовать его в большей степени для защиты программного обеспечения.
Было установлено, что для анализа программного обеспечения
специалистами ОАО «Аурат» применяется эмулятор процессов и целых
вычислительных систем QEMU. Он поддерживает работу с различными
процессорами и устройствами и работает в режимах эмуляции системы и
эмуляции приложений.
С использованием программы QEMU специалисты ОАО «Аурат»
реализуют методы оптимизации поиска в кэше оттранслированных блоков,
представленных в виде хэш-таблиц. На первом уровне хэш может производить
обработку не более одного, а в случае блока возникновения коллизий этот блок
вытесняет другой. Если отсутствует необходимый блок на первом уровне, то
осуществляется его поиск на следующем уровне.
В процессе оптимизации специалисты ОАО «Аурат» в каждой точке
программного кода выбирают представителя, позволяющего всем остальным
переменным быть копиями. Если в классе эквивалентности используются
внутренние переменные, которые не соответствуют регистрам эмулированной
системы, то представителем класса выступает одна из переменных. Каждая
93
переменная внутреннего представления хранит свое текущее состояние и может
принимать одно из трех значений: константу, не константу и копию.
Оценка работы среды QEMU показала, что основным недостатком
внутреннего представления является сложность внесения локальных
изменений, которые приведут к сдвигу массивов.
Анализ оптимизации в среде QEMU с применением тестов набора SPEC
CPU2000 показал, что наблюдается оптимизация на всех тестах, кроме 176.gcc
и 186.crafty. Оптимизация программного кода при тесте 176.gcc находится в
пределах точности измерений. Для теста 186.crafty наблюдается ухудшение
процесса оптимизации.
Исследования показали, что в настоящее время в ОАО «Аурат» для
оценки качества программного обеспечения применяется автоматизированная
система оценки качества программных средств, которая позволяет хранить,
обрабатывать полученные результаты оценки качества программного
обеспечения на различных стадиях жизненного цикла.
Для выявления недостатков в методах по оценке качества программного
обеспечения ОАО «Аурат» использовалась нотация UML, которая позволяет
определить выполняемые процессы в автоматизированной системе оценки
качества программных средств.
Недостатком автоматизированной системы является то, что она не
позволяет проводить тестирование программного обеспечения на основе
символьного выполнения и не позволяет исключить критические ошибки и
уязвимости при автоматизации процессов качества программного обеспечения.
В третьей части работы для совершенствования статистических методов
оптимизации было предложено использовать программу Valgrind, которая
является инструментальным программным обеспечением, позволяющим
отлаживать и обнаруживать ошибки в программном коде, а также повышать
качество программного обеспечения.
Эффективность комбинирования методов статического и динамического
анализа качества программного кода подтверждается исследованиями.
94
В настоящее время свое распространение получил инструмент
Check’NCrash, в котором объединены инструменты статического анализа
ESC/Java и JCrasher генератор тестов, позволяющий извлекать определенные
значения свойств специфические для абстрактных условий ошибок найденных
статическим анализатором.
Слайсинг программного обеспечения может применяться для
объединения динамического и статического методов анализа качества
программного обеспечения. Для осуществления слайсинга применяют
инструмент SANTE, в котором интегрированы инструменты для проведения
статистического анализа, позволяющего обнаружить ошибки в программном
коде и динамического анализа.
Компанией Microsoft Research для оценки качества программного кода
был представлен инструмент Yogi, интегрирующий статистический анализ
свойств безопасности и интерпретатор промежуточного представления
программ. Программа Yogi производит символьное выполнение программного
кода, а также его симуляцию с целью подтверждения найденных ошибок.
Тестирование показало, что в результате использования программ SPEC
CPU2000 было получено ускорение до 3,3% (тесты 164.gzip, 181.mcf и
256.bzip). Это указывает, что выполнение оптимизации с помощью программы
Valgrind позволяет повысить эффективность и качество разработки
программного обеспечения.
Для совершенствования статических методов анализа качества
программного обеспечения было предложено ОАО «Аурат» автоматизировать
процессы модульного тестирования за счет генерации тестовых воздействий и
основанный на динамическом символьном выполнении программного
обеспечения с использованием машинных инструкций.
Результаты экспериментов показывают, что тестируемый модуль
позволяет достичь большего тестового покрытия в сравнении с
существующими системами.
95
Также ОАО «Аурат» было предложено применять динамический анализ
для регенерации входных данных для определения критических ошибок и
уязвимостей в программах. Для проведения динамического анализа
рекомендуем использовать программу Avalanche, которая является
инструментом, позволяющим обнаруживать программные дефекты на основе
динамического анализа качества программного продукта.
Для поиска ошибок и дефектов в программном коде и повышения
качества программного обеспечения рекомендуем реализовать метод фаззинга
преимуществом, которого является возможность получения входных данных
для воспроизведения дефектов.
Современные фаззеры позволяют найти большое количество аварийных
завершений во время работы программного обеспечения. Перспективным
направлением поиска ошибок является способ обнаружения ошибок и
включения в них входных данных с целью повторного предупреждения.
Предложенный инструмент можно реализовать для программного
обеспечения, работающего под управлением операционных систем Windows,
Linux. Высокая скорость будет достигаться за счёт проведения анализа кода в
момент аварийного завершения программы.
Предварительная классификация дефектов позволит специалистам ОАО
Аурат существенно сократить время на оценку качества программного
обеспечения исключения дефектов.
Оценка эффективности предложенных мероприятий указывает на
целесообразность их проведения в ОАО «Аурат».
96
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1. Авазходжаева Д. М. Использование специализированного
программного обеспечения в процессе разработки и внедрения системы
менеджмента качества // Молодой ученый, 2017. - №17. – С.323-325
2. Акимова Е. В. Информационные системы и технологии в экономике и
управлении. Техническое и программное обеспечение: учебное пособие/ Е.В.
Акимова. – Саратов: Вузовское образование, 2016. – 190 c.
3. Асрян С. А. Обнаружение ошибок, возникающих при использовании
динамической памяти после ее освобождения // Труды Института системного
программирования РАН, 2018. - №3. – С.7-20
4. Банчук Г. Г. Теоретические аспекты оценки качества программных
продуктов // Статья в сборнике Информационно-аналитические системы и
технологии, 2018. – С.40-50
5. Бойченко О. В. Интерфейсные методы в оценке качества
программного обеспечения // Сборник тезисов участников II научной
конференции профессорско-преподавательского состава, аспирантов, студентов
и молодых ученых, 2016. – С.524-526
6. Бубарева О. А. Оценка качества программных систем при связывании
объектных спецификаций по семантике онтологического уровня //
Современные наукоемкие технологии, 2018. - №6. – С.40-43
7. Гасанов В. Р. Стандарты качества для оценки зрелости процесса
разработки программного обеспечения // Статья в сборнике трудов
Студенческая наука для развития информационного общества, 2016. – С.212-
214
8. Герасимов А. Ю. Обзор подходов к улучшению качества результатов
статического анализа программ // Труды системного программирования РАН,
2017. - № 3. – С.75-98
97
9. Горев А.И. Правовое регулирование оборота программного
обеспечения: монография/ А.И. Горев. – Омск: Омская академия МВД России,
2016. – 184 c.
10. Гордашникова О. Ю. Обеспечение качества разработки программного
продукта // Актуальные проблемы экономики и менеджмента, 2016. - №3. – С.5-
8
11. Долженко А.И. Технологии командной разработки программного
обеспечения информационных систем: учеб. пособие / А.И. Долженко. – М.:
Интернет-Университет Информационных Технологий (ИНТУИТ), 2016. – 300
c.
12. Долина О. Н. Системный подход к управлению качеством
программного обеспечения систем принятия решений // Статья в сборнике
Информационно-коммуникационные технологии в науке, производстве и
образовании, 2017. – С.179-183
13. Жакупова К. Э. Тестирование программного обеспечения как элемент
системы качества // Техника и технологии строительства, 2016. - №2. – С.18
14. Жарко Е. Ф. Проблемы оценки надежности и качества программного
обеспечения в системах управления // ИТ-Стандарт, 2017. - №1. – С. 26-31
15. Жуков В. К. Теория измерений: учеб. пособие / В. К. Жуков. – М.:
Университеты России, 2016. – 350 с.
16. Климов Г. Ю. Оценка качества и анализ программного обеспечения в
информационной системе управления предприятием // Статья в сборнике Наука
сегодня, 2016. – С.53-54
17. Кобозев В. А. Программное обеспечение систем получения и
обработки информации о качесте // Теория и практика современное науки,
2017. - №5. – С.111-115
18. Кожомбердиева Г. И. Получение интегральной оценки качества
программного обеспечения на основе формулы Байеса // Транспортные
интеллектуальные системы, 2017. – С.209-220
98
19. Козлова В. С. Управление качеством разработки программного
обеспечения в рамках гибких методологий управления проектами // Альманах
научных работ, 2017. – С.146-148
20. Копыльцов А. В. Математическое моделирование оценки качества
программного обеспечения // Статья в сборнике Моделирование и
ситуационное управление качеством сложных систем, 2016. – С. 212-215
21. Коршикова Л. А. Информационные технологии и стандартизация:
учеб. пособие / Л. А. Коршикова. – Новосибирск: НГТУ, 2018. – 76 с.
22. Костин А. В. Модель для оценивания функциональности систем
машинного перевода // Известия Российской академии науки, 2018. – С.158-172
23. Котляров В.П. Основы тестирования программного обеспечения:
учеб. пособие / В.П. Котляров. – М.: Интернет-Университет Информационных
Технологий (ИНТУИТ), 2016. – 334 c.
24. Костин А. В. Модель для оценивания функциональности систем
машинного перевода // Известия Российской академии наук, 2018. - №1. –
С.158-172
25. Кувшинова Е. А. Тестирование как важный компонент системы
контроля качества программного обеспечения // Статья в сборнике Прикладная
математика и информатика, 2017. – С.305-308
26. Кудеяров Ю.А. Испытания программного обеспечения средств
измерений: учебное пособие/ Ю.А. Кудеяров. – М.: Академия стандартизации,
метрологии и сертификации, 2017. – 141 c.
27. Кулева Ю. С. Развитие методов обеспечения качества программных
продуктов //Статья в сборнике Инноватика, 2018. – С.491-494
28. Кулумбаев Б. О. К вопросу программного обеспечения управления
качеством // Экономика и управление, 2018. – №5. – С. 144-146
29. Ленкин А. В. Анализ требований к интерфейсу современного
программного обеспечения// Постулат, 2017. - №1. – С. 41
30. Лобанова Н. М. Оценка затрат на качество программного обеспечения
// Вестник государственного университета управления, 2016. - №6. – С. 87-91
99
31. Лукин В. Н. Подготовка качественных программистов: проблемы
обучения // Моделирование и анализ данных, 2017. - №1. – С.29-41ф
32. Мейрманова Д. М. Процессы управления качеством программного
обеспечения // Наука, образование и культура, 2016. - №6. – С.11-16
33. Медведев Ю. С. Анализ современных методов статического и
динамического анализа программ и повышения качества программного
обеспечения // Статья в сборнике Научные чтения имени профессора Н. Е.
Жуковского, 2016. – С.18-22
34. Михеев А.Г. Процессное управление на свободном программном
обеспечении: учеб. пособие / А.Г. Михеев. – М.: Интернет-Университет
Информационных Технологий (ИНТУИТ), 2016. – 230 c.
35. Морозевич А. В. Сертификация как основа обеспечения безопасности
и качества программных средств // Статья в сборнике Повышение
эффективности форм и методов распространения среди населения знаний по
вопросам экономической и финансовой безопасности России, 2017. – С.232-234
36. Моисеева А. В. Программное обеспечение системы менеджмента
качества // Молодой ученый, 2017. - №10. – С.259-261
37. Моисеев С. И. Модель оценки качества программного обеспечения,
основанная на методе Раша оценки латерных переменных // Вестник
Воронежского государственного университета, 2016. - №1. – С.102-109
38. Мухаметзянова А. А. Оценка качества программного обеспечения //
Статья в сборнике Научные преобразования в эпоху глобализации, 2017. –
С.77-79
39. Набатов Д. В. Использование показателей качества программного
обеспечения в целях информационной безопасности // Инновационное
развитие, 2016. - №2. – С.19-20
40. Надейкина Л. А. Функциональная декомпозиция и использование
архитектурных паттернов для повышения качества программного обеспечения
// Информатизация и связь, 2017. - №2. – С.39-42
100
41. Павленко Е. П. Процедура многокритериального оценивания качества
программного обеспечения информационных систем // Science Rise, 2016. – №2.
– С.19-23
42. Пальмов С.В. Методы и средства моделирования программного
обеспечения: учеб. пособие / С.В. Пальмов. – Самара: Поволжский
государственный университет телекоммуникаций и информатики, 2016. 33 c.
43. Паршина Е. В. Подходы к оцениванию качества программного
обеспечения, основанные на методе парных уравнений // Вестник
Воронежского государственного университета, 2017. - №1. – С.141-148
44. Привалов И.М. Основы аппаратного и программного обеспечения:
учебное пособие/ И.М Привалов. – Ставрополь: Северокавказский федеральный
университет, 2015. – 145 c.
45. Санин С. Н. Управление качеством разработки программного
обеспечения // Статья в сборнике Качество продукции: контроль, управление,
повышение, планирование, 2017. – С. 14-18
46. Селиверстов Е. И. Проблемы разработки программного обеспечения с
точки зрения сроков и качества // Статья в сборнике Прикладная математика и
информатика, 2017. – С.529-530
47. Семенова Е. Г. Интегральная оценка и обеспечение качества
процессов разработки программных комплексов // Известия Тульского
государственного университета, 2017. - №7. – С.259-267
48. Семенова Е. Г. Методы обеспечения качества программных
комплексов на стадиях жизненного цикла продукции // Вопросы
радиоэлектроники, 2017. - №10. – С.75-77
49. Синицын С.В. Верификация программного обеспечения: учебное
пособие/ С.В. Синицын, Н.Ю. Налютин. – Москва, Саратов: Интернет-
Университет Информационных Технологий (ИНТУИТ), Вузовское
образование, 2017. – 368 c.

Смотрите также:

Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран
Work-life balance подход в управлении рабочим временем молодых сотрудников (на примере ООО «МГТ-сервис»)
Актуализация контента, отражающего концепцию «диалога культур», при освоении английского языка взрослыми обучающимися
Актуализация приемов инсценирования и драматизации в рамках интерактивной модели обучения английскому языку в старших классах
Актуальные подходы в построении внутреннего pr строительной компании (на примере ООО "Ренессанспроект")
Анализ деловой активности и экономической эффективности деятельности организации (на примере АО «СГ-Транс»)
Анализ деловой активности организации как инструмент повышения эффективности ее деятельности (на примере Косинского районного потребительского общества)