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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
2
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ .................................................................................................................. 4
ГЛАВА 1. ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ МЕТОДОВ ДЛЯ
АВТОМАТИЗАЦИИ ПРОЦЕССОВ ПОВЫШЕНИЯ КАЧЕСТВА
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ....................................................................... 8
1.1. Основные понятия и составляющие качества программного обеспечения 8
1.2. Особенности методов статического анализа программ для автоматизации
процессов качества программного обеспечения ................................................ 18
1.3. Обзор методов динамического анализа программ для автоматизации
процессов качества программного обеспечения ................................................ 29
Выводы по главе 1.................................................................................................. 37
ГЛАВА 2. АНАЛИЗ МЕТОДОВ РАБОТЫ И ОЦЕНКИ КАЧЕСТВА
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ОАО «АУРАТ» ......................................... 38
2.1. Общая характеристика деятельности и ИТ-инфраструктуры
предприятия ............................................................................................................ 38
2.2. Анализ методов для работы с программным обеспечением ...................... 45
2.3. Выявление недостатков в методах по оценке качества программного
обеспечения ............................................................................................................ 54
Выводы по главе 2.................................................................................................. 60
ГЛАВА 3. РАЗРАБОТКА РЕКОМЕНДАЦИЙ ПО СОВЕРШЕНСТВОВАНИЮ
МЕТОДОВ ОЦЕНКИ КАЧЕСТВА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ОАО
«АУРАТ» .................................................................................................................... 61
3.1. Предложения по совершенствованию статических методов оптимизации
динамической двоичной трансляции и проведению тестирования программ на
основе динамического символьного выполнения .............................................. 61
3.2. Предложения по внедрению динамического метода для исключения
критических ошибок и уязвимостей при автоматизации процессов качества
программного обеспечения ................................................................................... 75
3.3. Оценка эффективности предложенных мероприятий ................................. 83
3
Выводы по главе 3.................................................................................................. 88
ЗАКЛЮЧЕНИЕ ......................................................................................................... 90
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ ................................................. 96
ПРИЛОЖЕНИЯ ....................................................................................................... 103
4
ВВЕДЕНИЕ
Актуальность выбранной темы исследования заключается в том, что в
своем развитии программное обеспечение за короткий путь стало одной из
главных составляющих установления отношений между клиентами и
партнерами.
В настоящее время деятельность предприятий автоматизирована с
применением различного программного обеспечения. Критический уровень
зависимости современного предприятия от программного обеспечения создает
необходимость формирования жестких требований к качеству программных
продуктов.
Методы статического и динамического анализа оценки качества
программного обеспечения в первую очередь направлены на реализацию
процессов оптимизации и исключения ошибок и уязвимостей в программном
коде.
В настоящее время статистический и динамический анализ оценки
качества программного обеспечения применяется для решения задач, синтеза
программ, восстановления их работоспособности, выполнения процессов
обратной инженерии, повышения качества тестирования.
Автоматизация процессов проведения статистического и динамического
анализа позволяет обеспечить минимизацию ресурсов, затрачиваемых на
процессы оценки качества, совершенствовать технологии поиска уязвимостей и
ошибок, устранения дефектов в исходном программном коде.
Многими специалистами методы статического и динамического анализа
интегрируются и представляются в виде эмуляторов, позволяющих
поддерживать работу с различными процессорами и устройствами и выявлять
ошибки в режиме реального времени.
С использованием эмуляторов существует возможность использования
различных методов оптимизации поиска в кэше оттранслированных блоков,
выявления коллизий в программном коде.
5
Применение эмуляторов для статического и динамического анализа
программного кода создает возможность ускорения процесса выявления
дефектов, и ускорить процессы его оптимизации.
В процессе оптимизации эмулятором производится проверка в каждой
точке программного кода, определение ошибок, которые могут вызвать
аварийные сбои и нарушения. Он исключает недостатки внутреннего
представления, ускоряет процессы внесения локальных изменений, которые
приведут к сдвигу массивов.
Следовательно, выявление особенностей современных методов
статического и динамического анализа программ для автоматизации процессов
повышения качества программного обеспечения обосновывает выбор темы
исследования.
Предметом исследования являются современных методов статического и
динамического анализа программ для автоматизации процессов повышения
качества программного обеспечения.
Объектом исследования является программное обеспечение ОАО
«Аурат».
Цель исследования: выполнить анализ современных методов
статического и динамического анализа программ для автоматизации процессов
повышения качества программного обеспечения ОАО «Аурат» и предложить
мероприятия по их совершенствованию.
Задачи исследования:
1. Рассмотреть основные понятия и составляющие качества программного
обеспечения.
2. Выявить особенности методов статического анализа программ для
автоматизации процессов качества программного обеспечения.
3. Выполнить обзор методов динамического анализа программ для
автоматизации процессов качества программного обеспечения.
4. Проанализировать методы работы и оценки качества программного
обеспечения ОАО «Аурат».
6
5. Разработать рекомендации по совершенствованию методов оценки
качества программного обеспечения ОАО «Аурат».
Теоретической значимостью работы является систематизация методов
статического и динамического анализа программ для автоматизации процессов
качества программного обеспечения.
Практической значимостью работы является то, что внедрение среды
Valgrind, программного комплекса для автоматизации процессов модульного
тестирования за счет генерации тестовых воздействий и основанного на
динамическом символьном выполнении программного обеспечения с
использованием машинных инструкций, а также программного комплекса
Avalanche позволит совершенствовать методы оценки качества программного
обеспечения ОАО «Аурат».
Вопросы по использованию современных методов статического и
динамического анализа программ для автоматизации процессов повышения
качества программного обеспечения постоянно обсуждаются отечественными и
зарубежными специалистами, среди которых следует отметить работы
Авазходжаевой Д. М. [1], Акимовой Е. В. [2], Бойченко О. В. [3], Бубаревой О.
А. [4], Гасанова В. Р. [5] и других.
Методология исследования основана на методах логического наблюдения
и сбора фактов, анализа и сравнения, обобщения, аналогии, постановки, методы
решения проблем, систематизации и классификации.
Магистерская диссертация представлена в трех главах: теоретической,
практической и проектной.
В теоретической части работы рассматриваются основные понятия и
составляющие качества программного обеспечения, выявляются особенности
методов статического анализа программ для автоматизации процессов качества
программного обеспечения и выполняется обзор методов динамического
анализа программ для автоматизации процессов качества программного
обеспечения.
7
В аналитической части работы рассматривается общая характеристика
деятельности ОАО «Аурат» и ИТ-инфраструктура предприятия, анализируются
методы для работы с программным обеспечением, выявляются недостатки в
методах по оценке качества программного обеспечения.
В проектной части работы производится обоснование предложений по
совершенствованию статических методов оптимизации динамической
двоичной трансляции и проведению тестирования программ на основе
динамического символьного анализа, а также внедрению динамического метода
для исключения критических ошибок и уязвимостей при автоматизации
процессов качества программного обеспечения.
Магистерская диссертация представлена на 106 страницах, из которых 17
рисунков, 12 таблиц, 64 источников использованной литературы.
8
ГЛАВА 1. ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ МЕТОДОВ ДЛЯ
АВТОМАТИЗАЦИИ ПРОЦЕССОВ ПОВЫШЕНИЯ КАЧЕСТВА
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
1.1. Основные понятия и составляющие качества программного
обеспечения
В информационной сфере в настоящее время наблюдаются динамические
изменения, которые влияют на экономику государства, научную сферу,
процессы информатизации.
Анализируя динамику становления программных продуктов, профессор
Моисеев С. И. сделал выводы, что информатизация общества является
сложным многоаспектным процессом, в котором технологические, социальные,
экономические, политические и культурные механизмы связаны между собой и
образуют одну систему
1
.
Семенова Е. Г., рассматривая алгоритмы управления качеством
программного обеспечения, отмечает высокую ответственность и сложность
решаемых задач по разработке программного обеспечения и формализует ее
как составляющую процесса оценки. Им обращается внимание на проблемы
оценки качества и выделения задач по управлению качеством программных
продуктов
2
.
В работе Степановой М. А. исследуется специфика программного
обеспечения и обращается внимание на уровень качества программного
обеспечения с выделением следующих проблем
3
:
- программные продукты являются сложными системами;
1
Моисеев С. И. Модель оценки качества программного обеспечения, основанная на методе
Раша оценки латерных переменных // Вестник Воронежского государственного
университета, 2016. - №1. – С.102-109
2
Семенова Е. Г. Методы обеспечения качества программных комплексов на стадиях
жизненного цикла продукции // Вопросы радиоэлектроники, 2017. - №10. – С.75-77
3
Степанова М. А. Концепция и сущность управления качеством программного обеспечения
// Образование и наука без границ, 2016. - №3. – С. 89-92
9
- процессы и методы программирования эффективно работают для
небольшой группы людей и достаточно сложно их масштабировать для
сложных систем;
- тенденции роста научно-технического прогресса создают потребности в
разработке эволюционирующих программных продуктов.
Анализ процессов разработки программного обеспечения указывает, что
разработка любого программного продукта предусматривает создание
эффективной команды специалистов с дисциплиной управления.
Программный продукт является особым видом продукции, спецификой
которого является нематериальность и сложность оценки на стадии
эксплуатации.
В соответствии со стандартом ISO/IEC 9003:2004 программный продукт
представлен в виде системы компьютерных программ, документации,
включающей различные процедуры
4
.
По мнению Липаева В. В. накопление опыта разработки программного
обеспечения позволяет систематизировать и обобщать методы и технологии их
разработки и выделить наиболее важные параметры для оценки качества.
Качество программных продуктов также описывается в стандарте
ISO/IEC 9126-1:2001, в котором оно представляется в виде внутреннего,
внешнего качества и качества эксплуатации. Оценка качества в соответствии со
стандартом ISO/IEC 14598:1999 предусматривает выделение профессионализма
специалистов. В тесной взаимосвязи рассматриваются процессы обеспечения
гарантии качества, верификации и валидации, проведения аудита качества
программного обеспечения
5
.
Следует отметить роль SQA (Security Quality Assurance), которая
направлена на планирование процессов и выделение параметров оценки
качества процессов. Верификация и валидация используется в программных
4
Стандарт ISO/IEC 9003:2004. [Электронный ресурс]. URL: https://www.iso.org/ (дата
обращения: 16.09.2018 г.)
5
Стандарт ISO/IEC 9126-1:2001. [Электронный ресурс]. URL: https://www.iso.org/ (дата
обращения: 16.09.2018 г.)
10
точках программного продукта и позволяет проверить правильность его
работы.
В настоящее время на рынке программного обеспечения наблюдается
увеличение количества программных продуктов. Большая часть программного
обеспечения не пользуется доверием у пользователей, поскольку не имеет
необходимого уровня качества. Для решения этой проблемы при разработке
программного обеспечения используются различные виды стандартов,
регламентирующие процессы разработки и представления на рынке
программного обеспечения.
Необходимо понимать, что качество программного обеспечения является
достаточно сложным понятием. Как правило, программный продукт считается
качественным, если он полностью выполняет требования технической
эксплуатации
6
.
Однако в отношении программного обеспечения существуют следующие
проблемы:
- технические требования в большей степени отражают свойства
программного продукта необходимые заказчику, однако организация-
разработчик может сформировать свои требования к программному продукту
(например, удобство использования, которые не входят в состав технических
требований заказчика);
- сложно создать полную спецификацию программного продукта, хотя
разработанный программный продукт полностью соответствует спецификации
и заказчик может не получить желаемого качества программного продукта.
В настоящее время существует достаточно много трактовок понятия
«качество программного обеспечения» и они не противоречат друг другу. В
международном стандарте ISO 8402:1994 качество программного обеспечения
является параметром, отражающим полноту свойств и характеристик
программного продукта, процесса или услуги, которые позволяют обеспечить
6
Павленко Е. П. Процедура многокритериального оценивания качества программного
обеспечения информационных систем // Science Rise, 2016. – №2. – С.19-23
11
потребности или заявленные требования пользователя. Институтом инженеров
электротехники и электроники IEEE (Institute of Electrical and Electronics
Engineers) указывается, что качество программного обеспечения – это степень,
в которой оно имеет необходимые свойства
7
.
Понятие качество может быть привязано к интерпретации качества
инженерного продукта. Различные точки зрения позволяют выработать
требования к программному продукту. Характеристики качества могут быть
необходимы для нахождения компромисса между заказчиком и разработчиком.
Следовательно, качество программного обеспечения является понятием
не полностью изученным и требующим всестороннего рассмотрения со
стороны специалиста в этой области.
Качество зависит от тенденций и конкуренции программного
обеспечения на рынке, а также спроса на него со стороны пользователей.
Наиболее полно понятие «качество» отражает модель качества программного
обеспечения
8
.
В настоящее время наиболее распространенной и многоуровневой
моделью качества программного обеспечения является система стандартов ISO
9126. Эти стандарты позволяют идентифицировать атрибуты качества от
самого высокого уровня абстракции до самого низкого уровня. На верхнем
уровне приводятся характеристики качества программного обеспечения,
каждая из которых определяет атрибуты, имеющие определенные метрики для
оценки
9
.
На рисунке 1 представлена модель качества программного обеспечения в
соответствии с ISO 9126.
7
Смирнова Н. Б. Обеспечение качества сложных программных систем // Перспективные
направления развития отечественных информационных технологий, 2017. –С37-38
8
Лобанова Н. М. Оценка затрат на качество программного обеспечения // Вестник
государственного университета управления, 2016. - №6. – С. 87-91
9
Стандарт ISO 9126. [Электронный ресурс]. URL: https://www.iso.org/ (дата обращения:
16.09.2018 г.)

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

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