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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
82
Таблица 8 – Содержание файлов trace.log и dangertrace.log управляющего
модуля
trace.log
dangertrace.log
Assert(t1=1);
Query(false);
Assert(t2=1);
Query(false);
Assert(t3=0);
Query(false);
Assert(tn=0);
Query(false);
Assert(t1=1);
Assert(t2=1);
Assert(t_div=0);
Query(false);
Assert(t3=0);
Assert(t_deref=0);
Query(false);
Assert(tn=0);
В данном случае условие вида Assert обозначает условие, которое
необходимо выполнить вне зависимости от помеченных переменных, а условия
вида Assert(t_div=0); и Assert(t_deref=0); являются условиями равенства
делителя.
На первоначальном этапе управляющим модулем осуществляется разбор
трассы dangertrace.log и строятся его по содержимому запросы. Если в
результате работы STP оказывается, что все запросы выполнимы, то по
значениям переменных, выполняющим запрос в истину, управляющий модуль
будет формировать новое содержимое файла и запускать программу с новым
файлом с целью проверки факта возникновения ошибки.
В случае подтверждения ошибки, входной файл будет сохраняться
управляющим модулем.
После этого управляющий модуль выполняет разбор трассы trace.log и
передает ее в STP для проверки выполнимости из следующих запросов
Дерево условных переходов программы приведено в приложении Г.
Нижняя исходящая дуга вершины дерева условных переходов программы
применяется в случае прямого выполнения программы, а верхняя при
обратном.
Самому первому выполнению программы соответствует путь 1,2,4,16.
Допустим, после первого выполнения все запросы на инвертирование были
выполнены успешно, тогда на следующем этапе управляющего модуля будут
83
использоваться значения входных данных для прохождения пути 1,3,6, 12,24;
1,2,5,10,20; 1,2,4,9,18; 1,2,4,8,17. Поэтому первое выполнение программы
изображается в виде черты, которая отсекает в дереве самую нижнюю ветку.
При этом из имеющегося набора входных файлов выбирается тот, который
позволяет проанализировать программу.
Предположим, что наибольший прирост покрытия дает ветка 1,3,6,12,24.
Тогда после второго выполнения программного кода, кроме входных файлов
будут получены результаты первого выполнения.
3.3. Оценка эффективности предложенных мероприятий
При внедрении предложенных мероприятий специалисты ИТ-отдела
ОАО «Аурат» должна учитывать, что процесс внедрения предложенного
комплекса для проведения динамического анализа является сложным
процессом, предполагающим проведение различных организационно-
технических мероприятий специалистами IT отдела.
Для внедрения предложенного программного комплекса мероприятий для
проведения динамического анализа оценки качества программных продуктов
необходимо:
- провести обследование работы предложенного программного
обеспечения;
- выполнить пусконаладочные работы по вводу программного комплекса
в эксплуатацию;
- получить консультацию у внешних ИТ-специалистов по реализации
предложенных мероприятий;
- учесть все затраты на эксплуатацию предложенного программного
комплекса для проведения динамического анализа оценки качества
программного обеспечения.
Для совершенствования методов оценки качества программного
обеспечения ОАО «Аурат» было предложено внедрить среду Valgrind,
программный комплекс для автоматизации процессов модульного тестирования
84
за счет генерации тестовых воздействий и основанный на динамическом
символьном выполнении программного обеспечения с использованием
машинных инструкций, а также программный комплекс Avalanche.
В состав затрат на внедрение предложенных мероприятий в ОАО
«Аурат» будут входить единовременные и текущие затраты, связанные с
приобретением программного обеспечения и обучением персонала.
Смета затрат на покупку и разработку предложенного программного
обеспечения ОАО «Аурат» приведена в таблице 9.
Таблица 9– Смета затрат на покупку и разработку предложенного
программного обеспечения ОАО «Аурат»
Затраты
Сумма, руб.
Затраты на покупку среды Valgrind
28500
Затраты на разработку программного комплекса для
автоматизации процессов модульного тестирования за счет
генерации тестовых воздействий
70120
Затраты на покупку программного комплекса Avalanche
35600
Всего
134220
Таким образом, сумма планируемых затрат на покупку и разработку
программного обеспечения ОАО «Аурат» составит 134220 руб.
На следующем этапе выполним планирование организационно-
технических затрат на реализацию предложенных мероприятий в ОАО «Аурат»
(таблица 10).
Таблица 10 – Планирование организационно-технических затрат на
реализацию предложенных мероприятий в ОАО «Аурат»
Затраты
Сумма, руб.
Затраты на разработку технического задания для реализации
предложенных мероприятий
2500
Затраты на подготовку инструкций по работе с программными
средствами для проведения динамического анализа
2000
Затраты на разработку руководства администратора для обслуживания
предложенных программных средств
3000
Затраты на разработку руководства пользователя для обслуживания
предложенных программных средств
1500
Прочие виды затрат
1000
Всего
10000
85
Таким образом, планируемая сумма организационно-технических затрат
на реализацию предложенных мероприятий в ОАО «Аурат» составит 10000
руб. Проект внедрения предложенных мероприятий предлагаем в течение 3 лет
с обучением специалистов ИТ-отдела.
Смета планируемых текущих затрат на реализацию предложенных
мероприятий в ОАО «Аурат» приведена в таблице 11.
Таблица 11 – Смета планируемых текущих затрат на реализацию
предложенных мероприятий в ОАО «Аурат»
Виды затрат
Сумма, руб.
Установка программного обеспечения
5000
Подключение модулей
15000
Настройка модулей для работы программного комплекса
17000
Проверка работы модулей для работы программного комплекса
25000
Тестирование и наладка программного комплекса
20000
Всего
82000
Следовательно, сумма планируемых текущих затрат на реализацию
предложенных мероприятий в ОАО «Аурат» составит 82000 руб.
Для оценки экономической эффективности внедрения предложенных
мероприятий в ОАО «Аурат» будем использовать методику чистого дохода,
которая позволит оценить накопленный эффект за определённый расчетный
период. Суммарные чистый доход за весь расчетный период будет представлен
в виде суммы эффектов и будет определяться на основе финансовых потоков.
Экономический эффект от внедрения программного обеспечения будет
направлен на улучшение качества программного обеспечения за счет снижения
количества сбоев и ошибок при его эксплуатации.
Следовательно, за счет внедрения предложенного программного
комплекса будет снижаться трудоемкость, ускоряться процесс восстановления
программного обеспечения после сбоев, сокращаться количество ошибок в
работе программного обеспечения, предотвращаться за попытки получения
несанкционированного доступа к программному обеспечению.
86
На следующем этапе определим планируемую сумму годовых затрат на
расходные материалы, которая приведена в таблице 12.
Таблица 12 – Планируемая сумма годовых затрат на расходные материалы
Виды затрат
Цена, руб.
Количество,
шт.
Стоимость,
руб.
Покупка бумаги для печати отчетов (пачка
500 листов)
6,7
35
234,5
Покупка картриджа для принтера,
выполняющего печать отчёта
2895
20
57900
Всего
-
-
58134,5
Планируемая сумма затрат на расходные материалы для реализации
предложенных мероприятий составит 58134,5 руб.
На основании выполненного планирования затрат определим общую
сумму затрат: 134220+10000+82000+58134,5=284354,5 руб. или 284,35 тыс. руб.
Предполагаем, что реализация предложенных мероприятий в первый год
позволит сэкономить ОАО «Аурат» до 331,22 тыс. руб., во второй год 742,22
тыс. руб. и в третий год 980,75 тыс. руб.
Для оценки эффективности реализации предложенных мероприятий ОАО
«Аурат» будем использовать метод дисконтированного денежного потока. Этот
показатель достаточно часто используется при принятии управленческих
решений.
Для расчета показателя, позволяющего определить чистую теперешнюю
стоимость использовать следующую формулу:
 
,
1
1
n
t
t
t
r
C IF
N PV
(17)
где
t
CIF
сумма денежного потока, руб.;
t
–год проекта соответствующий периодам реализации (1, 2, 3.n), года;
n
– срок службы проекта, дней;
r
– ставка дисконта, %.
87
Для расчета коэффициента дисконтирования будем использовать
следующую формулу:
 
.
1
1
t
i
i
r
КД
(18)
Определим коэффициента дисконтирования при ставке дисконта 17%:
 
;1
17,01
1
0
0
КД
 
;855,0
17,01
1
1
1
КД
 
;731,0
17,01
1
2
2
КД
 
.624,0
17,01
1
2
3
КД
Тогда показатель чистой теперешней стоимости составит:
     
..6,1155624,075,980731,022,742855,022,331 284,35 рубтысNPV 
Полученные результаты расчета показателя NPV свидетельствует о
возможности реализации предложенных мероприятий в ОАО «Аурат».
Показатель дисконтированного показателя периода окупаемости будем
определять по формуле:
 
,
1
NCF
1
t
n
i
r
Е
i
ИЗ
T
(19)
где
Е
ИЗ
- сумма вложений в проект ОАО «Аурат», тыс. руб.;
88
 
n
i
r
i
1
t
1
NCF
- прогнозируемые дисконтированные денежные потоки, тыс.
руб.
.24,0
60,1155
35,284
годаТок 
Для определения показателя внутренней нормы рентабельности будем
использовать следующую формулу:
 
,
12
21
1
1
ii
NPVNPV
NPV
iIRR 

(20)
где і
1
ставка дисконта, при которой значение NPV положительно;
i
2
ставка дисконта, при которой проект становится убыточным или NPV
имеет меньшую теперешнюю стоимость;
NPV
1
значение чистой теперешней стоимости при і
1
;
NPV
2
значение чистой теперешней стоимости при i
2
.
Расчеты показали, что при ставке дисконта равной 30% NPV составит
858,30 тыс. руб. Тогда показатель внутренней нормы рентабельности будет
равен:
 
%.51,671730
20,85860,1155
60,1155
17 
IRR
Выполненные расчеты показали, что предложенные мероприятия следует
реализовать в ОАО «Аурат», на что указывают полученные показатели
эффективности.
Выводы по главе 3
Таким образом, для совершенствования статистических методов
оптимизации было предложено использовать программу Valgrind.
89
Тестирование показало, что в результате использования программ SPEC
CPU2000 было получено ускорение до 3,3% (тесты 164.gzip, 181.mcf и
256.bzip). Это указывает, что выполнение оптимизации с помощью программы
Valgrind позволяет повысить эффективность и качество разработки
программного обеспечения.
Для совершенствования статических методов анализа качества
программного обеспечения было предложено ОАО «Аурат» автоматизировать
процессы модульного тестирования за счет генерации тестовых воздействий и
основанный на динамическом символьном выполнении программного
обеспечения с использованием машинных инструкций. Результаты
экспериментов показывают, что тестируемый модуль позволяет достичь
большего тестового покрытия в сравнении с существующими системами.
Также ОАО «Аурат» было предложено применять динамический анализ
для регенерации входных данных для определения критических ошибок и
уязвимостей в программах. Для проведения динамического анализа
рекомендуем использовать программу Avalanche, которая является
инструментом, позволяющим обнаруживать программные дефекты на основе
динамического анализа качества программного продукта.
Оценка эффективности предложенных мероприятий указывает на
целесообразность их проведения в ОАО «Аурат».
90
ЗАКЛЮЧЕНИЕ
В процессе выполнения магистерской диссертации был выполнен анализ
современных методов статического и динамического анализа программ для
автоматизации процессов повышения качества программного обеспечения
ОАО «Аурат» и предложены мероприятия по их совершенствованию.
На первоначальном этапе были рассмотрены теоретические аспекты
методов для автоматизации процессов повышения качества программного
обеспечения и установлено, что качество программного обеспечения является
параметром, отражающим полноту свойств и характеристик программного
продукта, процесса или услуги, которые позволяют обеспечить потребности
или заявленные требования пользователя.
В настоящее время не существует единой методики, позволяющей
оценить качество работы программного обеспечения. Основным отличием
методик, которые применяются для статистического анализа качества
программного обеспечения, являются количественные и качественные
показатели, а также использование эталонного показателя.
Первая группа методов оценки качества основана на экспертной оценке, а
вторая группа позволяет определить качество на основании определенных
компонентов.
Среди методов статического анализа программ для автоматизации
процессов качества программного обеспечения следует отметить
многокритериальную оценку, методику, позволяющую управлять параметрами
качества программного обеспечения на основе модели Раша оценки латерных
переменных.
Многими специалистами рекомендуется использовать метод отсечения и
классификации предупреждений. Этот подход позволяет скрыть
предупреждение о реальных ошибках в программном коде.
91
Также можно идентифицировать предупреждение на основании
сравнения различных версий с использованием подписей предупреждений и
составлением пар.
Для изменения характеристик и критериев качества в динамических
методах анализа применяются метрики, представленные в виде системы
показателей для оценки качества программного обеспечения. Метрики могут
быть использованы на уровне критериев качества, а также на уровне отдельных
характеристик.
Для оценки качества программного обеспечения в динамическом анализе
также применяют метрики Джилба, Холстеда, Мартина, цикломатическое
число Мак-Кейба.
Поскольку программное обеспечение зависит от различных показателей,
то необходимость выбрать свойства, которые в большей степени позволяют
удовлетворить потребности пользователя. При этом свойства формирующие
качество программного продукта включает различные показатели,
оказывающие влияние на обобщенный показатель качества.
Особенностью отладки программы для автоматизации процессов качества
программного обеспечения является необходимость определения не только
программных, но и алгоритмических ошибок, в том числе связанных с
расчетами в использовании ресурсов вычислительной техники, ошибок
сопряжения программных модулей, выполнения основных функций и
приводящих к нарушению работы комплексов.
Во второй части магистерской диссертации был выполнен анализ методов
работы и оценки качества программного обеспечения ОАО «Аурат», которое
занимается производством коагулянтов, химических веществ используемых для
очистки воды, поступающей в водопроводные системы.
Анализ показал, что при работе с программным обеспечением
специалисты ОАО «Аурат» применяют обфускаторы, позволяющие
реализовать принципы лексической обфускации, обфускации потока
управления.

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

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