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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
12
Рисунок 1 – Модель качества программного обеспечения в соответствии с
ISO 9126
Рассмотрим более подробно основные составляющие качества,
представленные на высшем уровне иерархии. Функциональность программного
обеспечения определяется точностью, безопасностью, интероперабельностью и
согласованностью. Функциональные требования являются предметом в
спецификации, реализации, моделирования и аттестации программного
обеспечения. Они представлены в виде утверждений, позволяющих описать
поведение программного продукта. Применение формальных методов
позволяет довести отклонения фактического поведения программного продукта
до нуля. Это достигается за счёт выражения функциональных требований и
представления их в виде формальных исчислений
10
.
Надежность определяется завершенностью, устойчивостью и
восстанавливаемостью программного продукта. По показателям надежности
характеризуется поведение в системе при выходе за пределы в случае
возникновения ошибок или сбоев. При оценке атрибутов надежности
используются методы математической статистики и теории вероятностей.
10
Авазходжаева Д. М. Использование специализированного программного обеспечения в
процессе разработки и внедрения системы менеджмента качества // Молодой ученый, 2017. -
№17. – С.323-325
13
Требования к надежности достаточно важны при создании критических
программных продуктов, обеспечивающих безопасность жизнедеятельности.
Однако формальные методы приводят к возникновению внутренних ошибок и
росту незавершенности системы, а обеспечение надежности предусматривает
реализацию специальных подходов, учитывающих специфику программного
продукта.
Удобство, определяющееся эффективностью освоения, эргономичностью.
Эффективность по времени и ресурсам зависит от атрибутов эффективности и
входит в состав количественных показателей качества программного
обеспечения. От этих показателей зависит степень использования
эксплуатационной документации по программным продуктам
11
.
В настоящее время применяется различный инструментарий,
позволяющий определить эффективность программного обеспечения, также
внедрены методики для прогнозирования интегральных значений показателей
эффективности. Выбор формальных методов обеспечения эффективности
заслуживает особого внимания, поскольку устанавливает взаимосвязь между
ресурсоемкостью и производительностью программных продуктов.
Требования к сопровождаемости связаны с минимизацией усилий
модернизации программного продукта. Для их оценки применяются различные
методы прогнозирования затрат. При этом интегральная стоимость
программного продукта существенно превышает стоимость его разработки.
Сопровождение существенно можно упростить в том случае, если разработка
выполнялась с применением формальных методов и исчерпывающим
комплектом технологической документации, включающей различные
проверочные тесты
12
.
Переносимость, определяемая согласованностью со стандартами и
гибкостью инсталляции. С помощью переносимости программного продукта
11
Копыльцов А. В. Математическое моделирование оценки качества программного
обеспечения // Статья в сборнике Моделирование и ситуационное управление качеством
сложных систем, 2016. – С. 212-215
12
Горев А.И. Правовое регулирование оборота программного обеспечения: монография/
А.И. Горев. – Омск: Омская академия МВД России, 2016. – С.84
14
можно охарактеризовать степень свободы при выборе его компонентов. Оценка
переносимости затрудняется незавершенностью, динамичностью списка
возможных вариантов суждения, быстрым прогрессом в области
информационных технологий. Разработка программных продуктов с
применением формальных методов отличается высоким уровнем
переносимости, в частности такой программный продукт не подлежит
использованию технологической платформой, а реализация абстрактной
модели производится с использованием целевых средств программирования.
Требуемые характеристики качества программного обеспечения с
различных подходов отражают его особенности и свойства и зависят от
различных факторов. В системном анализе при проектировании программных
продуктов необходимо учитывать различные факторы, среди которых
отмечается
13
:
- назначение, описание, содержание функциональных характеристик и
атрибутов, позволяющих определить особенности целей и задач, сферу
применения определенного программного продукта, то есть его
функциональную пригодность;
- конструктивные характеристики качества, позволяющие улучшить
функции и возможности программного продукта;
- метрики, шкалы, выбранные для оценки определенных параметров
качества программного обеспечения;
- уровни детализации при оценке определённых характеристик и
атрибутов качества программного обеспечения;
- цели потребителей и результаты оценки характеристик качества
программного продукта;
- внутренние и внешние факторы, оказывающие влияние на качество
программного продукта;
13
Кулумбаев Б. О. К вопросу программного обеспечения управления качеством // Экономика
и управление, 2018. – №5. – С. 144-146
15
- доступные ресурсы, которые ограничивают возможные величины
реальных характеристик качества программного продукта;
- конкурентоспособность, выраженная в виде отношения эффективности
использования и покупки программного продукта.
Перечисленные факторы влияют на качество программного обеспечения,
а также формируют требования к его функциональности.
Модель качества, создаваемая в рамках стандартизации, позволяет
определить общие характеристики программного продукта, которые в процессе
его эксплуатации уточняются и улучшаются
14
.
На внешнем уровне иерархии модели качества программного
обеспечения представлены атрибуты программного обеспечения, позволяющие
более точно описать его и измерить. Требования к качеству в свою очередь
могут быть представлены в виде ограничений модели качества.
В этом случае оценка качества программного продукта происходит по
следующей схеме: на первоначальном этапе производится оценка атрибутов
программного продукта с применением метрик и шкалы оценки в зависимости
от атрибутов и ограничений в работе программного продукта.
Для каждой отдельной оценки атрибута выбираются определенные
параметры или критерии оценки. Стандарты в области качества программного
обеспечения выступают неотъемлемой составляющей программных продуктов.
Они позволяют разработать программу по общим требованиям и максимально
приблизить ее к высокому уровню качества
15
.
За последнее время в области управления качеством программного
обеспечения свое применение получили модели Capability Maturity Model
Integration (CMMI), Project Management Body of Knowledge (PMBOK). Также
для разработки программных продуктов также используют стандарт ISO/IEC
15504, известный как SPICE (Software Process Improvement and Capability
14
Жакупова К. Э. Тестирование программного обеспечения как элемент системы качества //
Техника и технологии строительства, 2016. - №2. – С.18
15
Жарко Е. Ф. Проблемы оценки надежности и качества программного обеспечения в
системах управления // ИТ-Стандарт, 2017. - №1. – С. 26-31
16
Determination), в котором определены требования к поставщику услуг и
предоставления потребителю программных продуктов приемлемого качества
16
.
Стандарт используется в процессах разработки программных продуктов и
связанных с ними бизнес-процессов. В нём приводится оценка качества на
основании концепции непрерывного улучшения процессов. При оценке
качества программного обеспечения по стандарту SPICE определяется качество
каждого из выделенных процессов по атрибутам.
В основе стандарта ISO/IEC 15504 находится выделение улучшенных
процессных областей, методика для оценки процессов с получением
количественных показателей. Для выделения процессов, требующих
улучшения в процессах планирования качества организации формулируются
цели
17
.
Эти цели направляются на повышение качества процессов и
представление на рынке конкурентного программного обеспечения. Для
реализации этих целей используются различные подходы, среди которых
следует отметить взвешенную систему показателей. Чем большее количество
целей позволяет реализовать исследуемый процесс, тем выше качество
программного обеспечения.
Следует отметить, что важным фактором для определения целей
являются риски, определение которых производится различными способами.
Наибольшее количество моделей и методик оценки рисков приведено в
стандарте ISO/IEC 31010:2009. В основе метода оценки рисков находится
построение дерева вероятностей, которое можно использовать в любой
процессной области для установления взаимосвязи между рисками и
получением количественного показателя
18
.
16
Бойченко О. В. Интерфейсные методы в оценке качества программного обеспечения //
Сборник тезисов участников II научной конференции профессорско-преподавательского
состава, аспирантов, студентов и молодых ученых, 2016. – С.524-526
17
Стандарт ISO/IEC 15504. [Электронный ресурс]. URL: https://www.iso.org/ (дата
обращения: 16.09.2018 г.)
18
Стандарт ISO/IEC 31010:2009. [Электронный ресурс]. URL: https://www.iso.org/ (дата
обращения: 16.09.2018 г.)
17
Также многими специалистами применяется матрица рисков. После
выбора модели для оценки рисков производится анализ процессов,
соответствующих целям организации и формируются двумерная шкала для
оценки приоритетов, приведенная на рисунке 2.
Рисунок 2 – Выделение приоритетных процессов для улучшения
В качестве приоритетных процессов выступают процессы, имеющие
наибольший уровень важности и риска, а затем отображаются процессы с менее
низким уровнем важности.
Далее на основании выделенных процессов формируется профиль
возможностей. В этом случае определяется степень выполнения практик в
процентах по каждому атрибуту процесса, устанавливаются весовые
коэффициенты на основании метода анализа иерархий и выделяются
количественные показатели атрибутов
19
.
В результате каждый процесс можно представить в виде профиля
возможностей. Полученные профили ранжируются по важности процессов с
последующим созданием целевого профиля. На следующем этапе производится
сравнение текущих профилей и планирование мероприятий по повышению
качества процессов.
19
Акимова Е. В. Информационные системы и технологии в экономике и управлении.
Техническое и программное обеспечение: учебное пособие/ Е.В. Акимова. – Саратов:
Вузовское образование, 2016. – С.90
18
1.2. Особенности методов статического анализа программ для
автоматизации процессов качества программного обеспечения
В настоящее время не существует единой методики, позволяющей
оценить качество работы программного обеспечения. Основным отличием
методик, которые применяются для статистического анализа качества
программного обеспечения, являются количественные и качественные
показатели, а также использование эталонного показателя.
Необходимо отметить, что различные методики могут по-разному
определять процедуры выбора оптимальных значений в оцениваемой
программе. В настоящее время принято несколько попыток классифицировать
эти методики
20
.
Первая группа методов оценки качества основана на экспертной оценке, а
вторая группа позволяет определить качество на основании определенных
компонентов.
Прямые методы статистического анализа качества программного
обеспечения позволяют получить оценку качества работы программы при
решении определенных задач. Развитие таких методик позволяет разработчику
сложного программного продукта проанализировать изображение, в основе
которого находятся алгоритмы, а также выполнять оценку промежуточных
результатов.
В основе аналитических методик находится алгоритм, позволяющий
оценить стратегию реализации, сложность, возможность распараллеливания и
ресурсоемкость. Эти свойства не имеют прямого отношения к алгоритму
работы программного обеспечения
21
.
Из методов статистического анализа является кластеризация, основанная
на схожести или связях. Задачей методов кластеризации является объединение
20
Костин А. В. Модель для оценивания функциональности систем машинного перевода //
Известия Российской академии наук, 2018. - №1. – С.158-172
21
Долина О. Н. Системный подход к управлению качеством программного обеспечения
систем принятия решений // Статья в сборнике Информационно-коммуникационные
технологии в науке, производстве и образовании, 2017. – С.179-183
19
в одну или множество различных групп дефектов программного обеспечения с
целью их последующего предупреждения.
Методы кластеризации бывают прямыми и косвенными. Их различие
состоит в том, что при прямой кластеризации создается связь между двумя
идентичными предупреждениями. Кластеризация предупреждений о дефектах
осуществляется с использованием арифметической связи между индексными
переменными при доступе к буферу. В случае косвенной кластеризации
производится группировка предупреждений по синтаксическому или
структурированному признаку
22
.
Кроме кластеризации в методах статистического анализа свое
распространение получил метод ранжирования, в основе которого находится
выстраивание предупреждений при вводе в анализатор так чтобы
предупреждения, имеющие большую вероятность, находились в верхней части
списка, а меньшую вероятность – в нижней части списка.
Статический метод ранжирования основан на технологиях приоритезации
предупреждений. Для реализации этого метода используется статическая
модель ранжирования дефектов в программном обеспечении. В этом случае
производится наблюдение за программным кодом, его проверка на наличие
ошибок. Статическим анализатором устанавливаются факты инициализации
ошибочных ситуаций, как при прямой, так и при обратной проверке
программного кода
23
.
Кроме статического ранжирования можно использовать ранжирование по
истории изменений. В этом случае рекомендуется использовать более высокий
приоритет для ошибок в программном коде наиболее важных для разработчика
программного обеспечения.
22
Асрян С. А. Обнаружение ошибок, возникающих при использовании динамической памяти
после ее освобождения // Труды Института системного программирования РАН, 2018. - №3.
– С.7-20
23
Котляров В.П. Основы тестирования программного обеспечения: учеб. пособие / В.П.
Котляров. – М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2016. –
С.43
20
Третьим методом является самоадаптирующиеся ранжирование, в основе
которого находится обратная связь. В этом случае дефекты ранжируется с
использованием созданной пользователем обратной связи.
В работе Моисеева А. В. рекомендуется по каждому шаблону определить
вероятность того, что предупреждение дефекта в программном коде является
истинным и в дальнейшем ранжирование дефектов производится по этому
критерию. Впоследствии начальное ранжирование изменяется в зависимости от
выбранного критерия предупреждения дефектов
24
.
В исследованиях статистических методов анализа качества программного
кода Павленко Е. П. был предложен метод отсечения и классификации
предупреждений. Этот подход позволяет скрыть предупреждение о реальных
ошибках в программном коде. В основе метода находится идентификация
предупреждений на основании проведения статистического анализа и
последующего сравнения полученных результатов
25
.
Санин С. Н. рекомендует идентифицировать предупреждение на
основании сравнения различных версий с использованием подписей
предупреждений и составлением пар
26
.
В работе Ястребова А. П. рекомендуется для классификации
предупреждений использовать логистическую регрессию. Автор выделил
группы факторов, оказывающих влияние на вероятность отнесения
предупреждения к ложному дефекту или истинному с последующим
исправлением ошибок
27
.
В свою очередь, Фокина Т.В. в качестве статистических методов анализа
качества программного кода рекомендуется использовать метод избавления от
24
Моисеева А. В. Программное обеспечение системы менеджмента качества // Молодой
ученый, 2017. - №10. – С.259-261
25
Павленко Е. П. Процедура многокритериального оценивания качества программного
обеспечения информационных систем // Science Rise, 2016. – №2. – С.19-23
26
Санин С. Н. Управление качеством разработки программного обеспечения // Статья в
сборнике Качество продукции: контроль, управление, повышение, планирование, 2017. – С.
14-18
27
Ястребов А. П. Обеспечения качества процесса разработки программных комплексов //
Статья в сборнике Управление качеством, 2018. – С.338-343
21
ложноположительных предупреждений. В основе этого подхода находится
инкрементальное расширение контекста для верификации программного кода
через вызов функции постепенного расширения
28
.
Для улучшения метода Набатовым Д. Б. рекомендуется использовать
технику предсказания результата, которая позволит исключить
ложноположительные предупреждения и уменьшить количество вызовов для
проверки программного кода
29
.
В основе эмпирических методик находится оценка не самого алгоритма, а
результатов работы программного обеспечения на основе набора эталонов. Эти
методики с помощью вариации эталонов позволяют оценить качество
программного обеспечения в зависимости от внешних условий, а также учесть
практическое применение программного обеспечения.
Рассмотрим методику оценки качества на основе количественных
показателей, реализованную в методе EDEM (Empirical Discrepancy Evolution
Method). Среди важных элементов методики EDEM является выбор критериев
для оценки работы программного обеспечения.
Для выбора критерия рассмотрим пример задачи оценки качества
изображений. Как известно, хорошая сегментация должна удовлетворять
следующим требованиям:
- сегменты по определенным характеристикам должны быть
однородными;
- сегменты в изображении должны отличаться между собой по различным
характеристикам;
- внутри сегмента не должно быть большого количества мелких дыр;
- границы сегмента должны быть гладкими и иметь точную
пространственную локализацию.
28
Фокина Т. В. Формулировка и анализ критериев качества технической документации на
примере требований к программному обеспечению // Информационные технологии, 2016. -
№5. – С.59-62
29
Набатов Д. В. Использование показателей качества программного обеспечения в целях
информационной безопасности // Инновационное развитие, 2016. - №2. – С.19-20

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

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