Исследование моделей надежности программного обеспечения в среде имитационного моделирования Any Logic

УДК 004.052.42

Е.В. Сидорова, О.А. Котельникова

ИССЛЕДОВАНИЕ МОДЕЛЕЙ НАДЕЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ В СРЕДЕ ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ ANY LOGIC

Нижегородский государственный технический университет им. Р.Е. Алексеева

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

Ключевые слова: надежность программного обеспечения, модели надежности программного обеспечения, моделирование, имитационная среда Any Logic.

Чрезвычайно высокая структурная сложность программных систем, динамичность версий и технологий сильно влияют на задачу снижения числа уязвимостей в программных системах. На надежность программного обеспечения (ПО), в основном, влияют содержащиеся в нем ошибки и их последствия. Все действия разработчиков по повышению надежности направлены на то, чтобы минимизировать ошибки при разработке программ и постараться выявить и устранить их как можно быстрее после их написания. Можно утверждать, что число ошибок в программе характеризует в первую очередь ее создателей-программистов и используемый ими IT-инструментарий. Также следует отметить большие объемы современных программных проектов и их сложность, что повышает вероятность ошибок в них.

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

Математические модели надежности программного обеспечения

Для количественной оценки показателей надежности ПО используют модели надежности, под которыми понимаются математические модели, построенные для оценки зависимости надежности от заранее известных или определенных в ходе выполнения заданий параметров.

В рамках данной статьи, для проведения исследования, выбраны четыре модели надежности: Шумана, Муса, Джелински-Моранды и Миллса [2-4]. В среде имитационного моделирования Any Logic [1] был проведен ряд вычислительных экспериментов, цель которых - определить, насколько эффективны выбранные модели для получения различных показателей надежности программ на отдельных стадиях жизненного цикла ПО.

Дадим краткую характеристику выбранным моделям.

Модель Шумана [2]: при корректировке новые ошибки не вносятся, интенсивность обнаружения ошибок пропорциональна числу оставшихся ошибок, нахождение первоначального количества ошибок - метод перебора, функция надежности:

R

где X - интенсивность отказов на i-м этапе; t - продолжительность этапа.

Модель Муса [3]: надежность программного обеспечения на этапе эксплуатации оценивается по результатам тестирования, первоначальное количество ошибок определяется только при помощи модели Шумана, функция надежности

T

R

где T - суммарное время тестирования; t - средняя наработка до отказа после тестирования.

© Сидорова Е.В., Котельникова О.А., 2015.

Модель Джелински-Моранды [4]: время до следующего отказа распределено экспоненциально, интенсивность отказов пропорциональна количеству оставшихся в программе ошибок, нахождение первоначального количества ошибок - метод подбора, функция надежности

m )=,

где X - интенсивность отказов; ti - среднее время до следующего отказа.

Модель Миллса [3]: необходимо перед началом тестирования внести искусственные ошибки, все ошибки, как естественные, так и искусственные, имеют равную вероятность быть найденными в процессе тестирования, первоначальное количество ошибок

S

N = n-,

v

где n - обнаруженные собственные ошибки; S - количество искусственно внесенных ошибок; v - обнаруженные искусственные ошибки.

Вторая часть модели Миллса связана с проверкой гипотезы о первоначальном количестве ошибок.

Результаты моделирования в среде Any Logic

Модель Джелински-Моранды

Согласно данной модели, вероятность безотказной работы ПО как функция времени t,

равна

P

где X - интенсивность отказов:

X, = CD

где N - первоначальное количество ошибок; CD - коэффициент пропорциональности

k-1 i

_t=1 N - i +1

CD = k-1 ,

Z <1

г=1

В формуле (5) отсчет времени начинается от момента последнего (/-1)-го отказа программы. По методу максимума правдоподобия на основании формулы (5), функция правдоподобия имеет вид

к-1

^ = П Сд

г=1

где к - номер прогнозируемого отказа.

Логарифмическая функция правдоподобия имеет вид

k-1

L = ln F = Х[НCD

Отсюда условия для нахождения экстремума

1

SL Z

ÔC

D 1=1

- (N - i + 1)<i C

= 0,

к -1

1

N - г +1

- С а

Б г

= 0.

Из формулы (11) находится коэффициент пропорциональности Со - формула (7). Для нахождения первоначального количества ошибок используют итеративную процедуру, в результате которой находят значение, обеспечивающее наименьшую ошибку (метод перебора) при решении уравнения

(к -

к-1 У

г=1

к-1

к-1

У—1— г=

у N - г +1

= у (N - г +1% ,

где II - интервалы между отказами.

Рис. 1. Метод перебора

Рис. 2. Переменная N1

П Свойства 5 Консоль

О N2 - Вспомогательная переменная

Основные Имя: N2 0 Отображать имя О Иск

Массив

Описание Цвет: По умолчанию V

1 I Массив П Зависимая ГЦ Константа

N2 =

Рис. 3. Переменная N2

1=\

После нахождения значений параметров модели Со и N можно найти интенсивность отказов X (формула (6)), а также время от последнего до следующего отказа Хк+1 и вероятность безотказной работы через время Хк+1 после последнего отказа (формула (5)).

Рис. 4. Связь между коэффициентом пропорциональности Св, интенсивностью отказов X и временем от последнего отказа до следующего Ь4

Рис. 5. Коэффициент пропорциональности Св

Рис. 6. Интенсивность отказов X

Свойства 5 Консоль

О Х4 - Вспомогательная переменная

Основные Имя: 14 0

Массив Цвет:

Описание По умолчанию V

О Массив [Щ Зависимая [Щ Констан

t4 =

1/А4

П Использовать единицы измерения

Рис. 7. Время от последнего отказа до следующего ¿4

N1 N2

152.308 150

0.02 0.02 О-

14

50.769

Рис. 8. Работа модели Джелински-Моранды

Основным преимуществом модели является простота расчетов. Недостаток состоит в том, что при неточном определении величины N интенсивность отказов программы может стать отрицательной, что приводит к бессмысленному результату. Кроме того, предполагается, что при исправлении обнаруженных ошибок не вносятся новые ошибки, что тоже не всегда выполняется.

Модель Маркова

Рассмотрим систему, начинающую работу в момент времени I = 0. Система работает до появления ошибки в соответствии с предпочтенным критерием. Результаты эксперимента собираются в отрезки времени, за которые могут произойти отказы в работе. Тогда переменная t' времени случайного сбоя может быть определена как:

т=%,

где > 0 - местоположение точек на дискретной временной оси эксперимента.

Предположим, что случайная переменная f имеет функцию распределения

^(г) = Р£ : г < г},

и, если она существует, то плотность функции распределения будет

f (t ) =-

dt

Надежность системы R(t) определяется вероятностью отсутствия сбоя на интервале времени [0; t]:

R

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

A(t ) = 2 pn-k (t ).

k=0

Предположим, что в начальный период (^ = 0) система содержит неизвестное число (п) ошибок. В качестве начала отсчета времени работы системы выбирается начало фазы тестирования. Принимаем также, что процессы обнаружения и исправления ошибок реализуются попеременно и последовательно и зависят от текущего состояния системы.

Предположим, что к моменту I система только что вошла в состояние (п - к), т. е. ошибка к только что устранена. Тогда в интервале времени (0, 4+1), где I = 4+1 может проявиться ошибка (к + 1) при принятой постоянной интенсивности проявления ошибок Хк.

На основании формулы функции надежности, порождающей вероятность отсутствия сбоев в интервале времени от 0 до I, получим выражение для надежности:

где

0 <т < 4-+ь Ä=0, 1,2, ...

Rk СО = *

- kt

4.0 10.0 20.0 25.0

(3 к СЗ tl (3ç (3

4.0

Рис. 9. Работа модели Маркова

Предполагается, что модель в начальный период будет использоваться со значением Х, которое было получено на базе накопления прошлого опыта.

Модель Шумана

В модели Шумана программное обеспечение на г-м этапе тестирования имеет функцию надежности

R (t ) = e~x't,

где Хг- - интенсивность обнаружения ошибок:

X, = С

где N - первоначальное количество ошибок; - пг-1) - количество ошибок, оставшихся к началу /-го этапа; п - общее число обнаруженных и исправленных при тестировании ошибок:

и = щ + ...+ т,

п - число ошибок, исправленных к началу (1+1)-го этапа тестирования:

п = т++т,

С - коэффициент пропорциональности, равный:

Ь т

С = 1=1 Нк _ П-1 ,

где II - длительность этапов тестирования; т, - число отказов на /-м этапе; к - общее число этапов тестирования.

Для нахождения первоначального количества ошибок в программном обеспечении используется уравнение

к

Ч к

Ъ

Ът, к '=' = Ъ

1=1

Ч к'

=1 Ъ

ъ N - п

т1 1=1

Уравнение представляет собой метод перебора, с помощью которого находят значение, обеспечивающее наименьшую ошибку при решении данного уравнения.

Рис. 10. Метод перебора по уравнению

При известных значениях к (общее число этапов тестирования), (длительность этапов тестирования), т/ (число отказов на /-м этапе) можно найти значения параметров модели С и N по формулам (23) и (24).

1=1

к

О Свойства 5 Консоль

О С - Вспомогательная переменная

1

Основные Имя: С 0 Отображать имя  Исключить О На верхнем уровне @ На презентации

Массив

Описание Цвет: По умолчанию V

П Массив П Зависимая I I Константа

С =

1 1 Использовать единицы измерения Единица измерения:

Рис. 11. Коэффициент пропорциональности С

О Свойства S Консоль

О N1 - Вспомогательная переменная

Основные Имя: N1 Отображать имя [_] Исключить [_] На верхнем уровне 0 На презентации

Массив Описание Цвет: По умолчанию V

П Массив О Зависимая | I Константа

N1 =

1 1 Использовать единицы измерения Единица измерения:

Рис. 12. Метод перебора, параметр N1

Рис. 13. Метод перебора, параметр N2

После чего можно определить показатели:

• число оставшихся ошибок в программном обеспечении:

ЫТ = N - п;

• функцию надежности программного обеспечения по завершении тестирования:

R(t) = ;

• интенсивность обнаружения отказов:

Х = C(N - n).

Рис. 14. Интенсивность обнаружения отказов X

=>СГ

Рис. 15. Работа модели Шумана

Представить наглядно первоначальное количество ошибок и количество оставшихся в программе ошибок позволяют графические инструменты в среде Any Logic. Это столбиковая диаграмма и временной график.

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

Рис. 16. Столбиковая диаграмма для подсчета ошибок

При разных значениях Ы, к, и тг диаграмма подсчитывает ошибки и выдает результат на экран.

ЯШ N: 1  Nt: -2  N: 3 м Nt: -2 шш N: 6 Hi Nt: -2 н N: 8 В Nt: О

а) б) в) г)

Рис. 17. Подсчет оставшихся ошибок:

а - при N=1; б - при N=3; в - при N=6; г - при N=8, когда все ошибки исправлены

Сравнительный анализ имитационных моделей

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

п

К = тах ^агрг ,

1=1

где аг- - весовой коэффициент /-го свойства рассматриваемой модели; рг- - коэффициент значимости /-го свойства рассматриваемой модели: рг=0, если свойством модель не обладает, Рг=1, если этим свойством модель обладает.

Таблица 1

Свойства моделей

Свойства моделей Модели

Миллса Шумана Джелински-Моранды Муса Маркова Нельсона-Коркорэна

Машино-независимость 1 0 0 0 0 1

Возможность априорной оценки 0 0 0 0 0 0

Точность оценки 0 1 1 1 1 1

Возможность прогнозирования параметра 0 1 1 1 1 1

Устойчивость к порядку следования тестов 1 0 0 0 1 1

Учет категорий ошибок 0 0 0 0 0 0

Инвариантность к потоку проявления ошибок 1 0 0 0 0 1

Инвариантность к потоку исправления ошибок 0 0 0 0 0 0

Инвариантность к уровню подготовки программиста 0 1 1 1 1 0

Независимость от предыдущего состояния 1 0 0 0 0 1

Рассмотренные модели позволяют оценивать различные свойства ПО.

Выводы

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

Библиографический список

1. Боев, В.Д. Компьютерное моделирование: пособие для практических занятий, курсового и дипломного проектирования в AnyLogic7 / В.Д. Боев. - СПб.: ВАС, 2014. - 432 с.

2. Фатуев, В.П. Надежность автоматизированных информационных систем / В.П. Фатуев, В.И. Высоцкий, В.И. Бушинский. - Т.: ТГУ, 1998. - 104 с.

3. Усенко, О.А. Модели и методы оценки программного обеспечения информационных систем: учеб. пособие / О.А. Усенко. - Т.: ТТИ ЮФУ, 2008. - 40 с.

4. Шураков, В.В. Надежность программного обеспечения систем обработки данных / В.В. Шу-раков. - М.: Статистика, 1981. - 216 с.

Дата поступления в редакцию 22.10.2015

E. V. Sidorova, O.A. Kotelnikova

INVESTIGATION OF MODELS OF SOFTWARE RELIABILITY IN SIMULATION ENVIRONMENT ANY LOGIC

Nizhny Novgorod state technical university n.a. R.E. Alexeev Purpose: Conduct a study of models of software reliability in a simulation tool Any Logic.

Design/methodology/approach: As objects of study chosen theoretical models Dzhelinski reliability, Markov, Schumann, Musa. For selected models conducted a simulation using the Any Logic tool with the following analysis of results of the study.

Finding: As a result, a comparative table is composed of models based on various criteria software.

Research limitation/implication: This study provides the basis for the selection method of calculating the theoretical

model of software reliability in various stages of the life cycle.

Key words: software reliability, model software reliability, modeling, simulation environment Any Logic.