Общая характеристика моделей надежности программных средств
ГОУ ВПО Ростовский Государственный Экономический Университет («РИНХ»)
Кафедра экономической информатики и
автоматизации управления
Р Е Ф Е Р А Т
на тему: «Общая характеристика моделей надежности программных средств»
Факультет: Информатизации и управления
По дисциплине: Метрология и сертификация ПО
Группа: 351
Специальность: Прикладная информатика в экономике
Вариант: 11
Выполнила:
студентка
Проверила:
ст. преподаватель
Ростов - на - Дону
2010 год
Содержание:
Введение 3
1 Аналитические модели надежности ПС 4
1.1 Динамические модели надежности 4
1.2 Статические модели надежности 20
2 Эмпирические модели надежности 34
Заключение 42
Список использованных источников 43
Введение
В международном стандарте ISO 9126:1991 надежность выделена как одна из основных характеристик качества программного обеспечения (ПО). Стандартный словарь терминов программного инжиниринга определяет надежность программного обеспечения как способность системы или компонента выполнять требуемые функции в заданных условиях на протяжении указанного периода времени.
Сама проблема надежности программного обеспечения имеет, по крайней мере, два аспекта: обеспечение и оценка (измерение) надежности. Практически вся имеющаяся литература посвящена первому аспекту, а вопрос оценки надежности компьютерных программ недостаточно проработан. Вместе с тем очевидно, что надежность программы гораздо важнее таких традиционных ее характеристик, как время исполнения или требуемый объем оперативной памяти, однако никакой общепринятой количественной меры надежности программ до сих пор не существует.
Модели надежности программных средств подразделяются на аналитические и эмпирические. Аналитические модели дают возможность рассчитать количественные показатели надежности, основываясь на данных о поведении программы в процессе тестирования. Эмпирические модели базируются на анализе структурных особенностей программ.
Аналитические модели представлены двумя группами: динамические и статические. В динамических моделях поведение ПО (появление отказов) рассматривается во времени. Если фиксируются интервалы каждого отказа, то получается непрерывная картина появления отказов во времени (модели с непрерывным временем). Может фиксироваться только число отказов за произвольный интервал времени. В этом случае поведение ПО может быть представлено только в дискретных точках (модели с дискретным временем).
В статических моделях появление
отказов не связывают со временем,
а учитывают зависимость
1 Аналитические модели надежности ПС
Аналитическое моделирование надежности ПС включает четыре шага:
- определение предположений, связанных с процедурой тестирования ПС;
- разработка или выбор аналитической модели, базирующейся на предположениях о процедуре тестирования;
- выбор параметров моделей с использованием полученных данных;
- применение модели — расчет количественных показателей надежности по модели.
1.1 Динамические модели надежности
Свойства динамических методов:
- Достоверность получаемых результатов сильно зависит от качества исходных данных. Для оценки достоверности используются метрики покрытия кода
- При использовании прогнозных моделей обычно не учитываются влияния нерегулярных флуктуаций, имеющих место в процессе разработки и отладки ПО (особенности проекта, неравномерная плотность дефектов, квалификация персонала и др.)
Достоинства:
- Позволяют получать абсолютные показатели надежности
Недостатки
- высокая трудоемкость сбора исходной информации
- использование упрощающих предположений о взаимных влияниях программных ошибок
- сильная зависимость точности прогнозов от качества и объема исходной информации
Модель Шумана
Исходные данные для модели Шумана, которая относится к динамическим моделям дискретного времени, собираются в процессе тестирования ПС в течение фиксированных или случайных временных интервалов. Каждый интервал — это стадия, на которой выполняется последовательность тестов и фиксируется некоторое число ошибок.
Модель Шумана может быть использована при определенным образом организованной процедуре тестирования. Использование модели Шумана предполагает, что тестирование проводится в несколько этапов. Каждый этап представляет собой выполнение программы на полном комплексе разработанных тестовых данных. Выявленные ошибки регистрируются (собирается статистика об ошибках), но не исправляются. По завершении этапа на основе собранных данных о поведении ПС на очередном этапе тестирования может быть использована модель Шумана для расчета количественных показателей надежности. После этого исправляются ошибки, обнаруженные на предыдущем этапе, при необходимости корректируются тестовые наборы и проводится новый этап тестирования. При использовании модели Шумана предполагается, что исходное количество ошибок в программе постоянно и в процессе тестирования может уменьшаться по мере того, как ошибки выявляются и исправляются. Новые ошибки при корректировке не вносятся. Скорость обнаружения ошибок пропорциональна числу оставшихся ошибок. Общее число машинных инструкций в рамках одного этапа тестирования постоянно.
Предполагается, что до начала тестирования в ПС имеется ЕT ошибок. В течение времени тестирования τ обнаруживается εс ошибок в расчете на команду в машинном языке.
Таким образом, удельное число ошибок на одну машинную команду, оставшихся в системе после т времени тестирования, равно:
(1)
где IT — общее число машинных команд, которое предполагается постоянным в рамках этапа тестирования.
Автор предполагает, что значение функции частоты отказов Z(t) пропорционально числу ошибок, оставшихся в ПС после израсходованного на тестирование времени τ:
где С — некоторая константа;
t — время работы ПС без отказа.
Тогда, если время работы ПС без отказа t отсчитывается от точки t = 0, а τ остается фиксированным; функция надежности, или вероятность безотказной работы на интервале времени от 0 до t, равна:
(2)
(3)
Из величин, входящих в формулы (2) и (3), не известны начальное значение ошибок в ПС (ET ) и коэффициент пропорциональности С. Для их определения прибегают к следующим рассуждениям. В процессе тестирования собирается информация о времени и количестве ошибок на каждом прогоне, т.е. общее время тестирования τ складывается из времени каждого прогона:
Предполагая, что интенсивность появления ошибок постоянна и равна λ, можно вычислить ее как число ошибок в единицу времени:
(4)
где Ai — количество ошибок на i-м прогоне;
(5)
Имея данные для двух различных моментов тестирования τA и τb, которые выбираются произвольно с учетом требования, чтобы εc(τb) > εc (τA), можно сопоставить уравнения (3) и (5) при τA и τb
(6)
(7)
Вычисляя отношения (6) и (7), получим:
(8)
Подставив полученную оценку параметров ET в выражение (6), получим оценку для второго неизвестного параметра:
(9)
Получив неизвестные ET и С, можно рассчитать надежность программы по формуле (2).
Например, в программе имеется It = 4381 оператор. В процессе последовательных тестовых прогонов были получены следующие данные:
N прогона |
1 |
2А |
3 |
4 |
5 |
6 |
7 |
8А |
9 |
10 |
Кол-во ошибок |
1 |
2 |
1 |
1 |
1 |
1 |
1 |
2 |
1 |
1 |
Время (м) |
5 |
8 |
2 |
1 |
5 |
1 |
1 |
2 |
5 |
5 |
Выберем две точки, исходя из требования, чтобы число ошибок, найденных на интервале А ÷ В , и было больше, чем на интервале 0 ÷ А. За точку А возьмем 2 прогон, а за точку В – 8 прогон. Тогда ошибки, найденные на этапах тестирования на интервалах 0 ÷ А и А ÷ В, будут равны соответственно:
εс (τА) = 3/4381 = 0.0007
εс (τВ) = 7/4381 = 0.0015
Время тестирования на интервалах равно:
τА = 13
τВ = 12.
Рассчитаем интенсивности появления ошибок на двух интервалах:
λА = 3 . 13 = 0.23
λВ = 7 . 12 = 0.58.
Et = 4381 (0.58/0.23*0.0007-0.0015) / (0.58/0.23-1) = 0.763 ≈ 1 ошибка
Тогда число имеющихся до начала тестирования ошибок равно
C = 0.23/ (0.76/4381-0.0007) = - 460
Рассчитаем вероятность безотказной работы в течение времени t при τ = 35 мин.
R (t,35) = exp {460*[0.763/4381-εc (35)]t}
Возьмем t=60 мин.
R (60,35) = exp {460*[0.0002-0.0027]60}≈ 0.9
Таким образом, надежность
безотказной работы достаточно велика
и вероятность сбоев и
Модель La Padula
По этой модели выполнение последовательности тестов производится в т этапов. Каждый этап заканчивается внесением изменений (исправлений) в ПС. Возрастающая функция надежности базируется на числе ошибок, обнаруженных в ходе каждого тестового прогона.
Надежность ПС в течение i-го этапа:
R(t) = R (¥) – A/(i), i = 1,2…,
где А — параметр роста;
R (¥) = lim R (i) - предельная надежность ПС
i®¥
Эти неизвестные величины автор предлагает вычислить, решив следующие уравнения:
Определяемый по этой модели показатель есть надежность ПС на i-м этапе: R(t) = R(∞) — A/(i), i = m + 1, m + 2...
Преимущество модели заключается
в том, что она является прогнозной
и, основываясь на данных, полученных
в ходе тестирования, дает возможность
предсказать вероятность
Модель Джелинского-Моранды
Это одна из первых и простейших моделей классического типа, послужившая основой для дальнейших разработок в этом направлении. Модель была использована при разработке таких значительных программных проектов, как программа Аполло (некоторых ее модулей). Модель Джелинского-Моранды основана на следующих предположениях:
- Интенсивность обнаружения ошибок R(t) пропорциональна текущему количеству ошибок в программе, то есть изначальному количеству ошибок за вычетом количества ошибок, уже обнаруженных на данный момент.
- Все ошибки в программе равновероятны и не зависят друг от друга.
- Все ошибки имеют одинаковую степень важности.
- Время до следующего отказа программы распределено экспоненциально.
- Исправление ошибок происходит без внесения в программу новых ошибок.
- R(t) = const в промежутке между любыми двумя соседними моментами обнаружения ошибок.
Согласно этим предположениям, функция риска будет представлена как:
R(t) = K[B – (i-1)]
В этой формуле t – это произвольный момент времени между обнаружением (i-1)-й и i-й ошибок; K – неизвестный коэффициент масштабирования; B – начальное количество оставшихся в программе ошибок (также неизвестное). Таким образом, если в течении времени t было обнаружено (i-1) ошибок, это означает, что в программе еще остается B-(i-1) необнаруженных ошибок. Полагая, что
и используя предпосылку 6, а также равенство (11), можно заключить, что все Xi имеют экспоненциальное распределение
P(Xi) = exp { -K[B-(i-1)]Xi}
и плотность вероятности отказа, соответственно, равна
q (Xi) = K[B-(i-1)]exp{-K[B-(i-1)] Xi }
Тогда функцию правдоподобия (согласно предпосылке 2) можно записать как
или, переходя к логарифму функции правдоподобия, имеем
(11)
Максимум функции
(12)
(13)
Из формулы (12) получается оценка максимального правдоподобия для K
Подставляя выражение (14) в (13), находим нелинейное уравнение для вычисления –оценки максимального правдоподобия для B
Это уравнение можно упростить перед тем, как искать его решение, если записать его с использованием следующих обозначений
где
Поскольку имеют смысл лишь целочисленные значения , функции из выражения (16) можно рассматривать только для целочисленных аргументов. Более того, m≥n+1, поскольку n ошибок с программе уже обнаружено. Таким образом, оценка максимального правдоподобия для B может быть получена с помощью вычисления начальных значений функций fn(m) и gn(m) для m=n+1, n+2…, и анализа разницы |fn(m)-gn(m)|.
Поскольку правая и левая части выражения (16) одинаково монотонны, это порождает проблему единственности решения, а также проблему его существования. Конечное решение B^ в области B^≥n существует тогда и только тогда, когда выполняется неравенство
В противном случае оценка максимального правдоподобия будет B^ = ∞. Условие (17) можно переписать в более удобном виде
A> (n+1)/2,
где A – то же самое выражение, что и в формуле (16). Необходимо отметить, что, A является интегральной характеристикой n встретившихся в программе за время тестирования ошибок, и представляет (в статистическом смысле) набор интервалов Xi между ошибками.
Рассмотрим пример использования модели Джелинского-Моранды, в котором она применяется к следующим экспериментальным данным: в течение 250 дней было обнаружено 26 ошибок, интервалы между обнаружением которых представлены в таблице 1. Для этих данных мы имеем n=26 и . Условие (18) выполняется, и, таким образом, оценка максимального правдоподобия имеет единственное решение. В таблице 2 представлены начальные значения функций, входящих в уравнение (16), для множества аргументов m≥n+1.
Наилучшим решением для уравнения (16) является m=32 (соответствующая строка в таблице дает минимальное значение разницы функций по модулю, то есть максимально приближает ее к нулю, что нам и требуется), то есть B^ = m-1=31. Из выражения (14) находим B^ = 0.007.
Среднее время (время, оставшееся до обнаружения (n+1)-й ошибки) есть инвертированная оценка интенсивности для предыдущей ошибки:
В этом примере,Xest27 = 29 дней, и время до полного завершения тестирования
Таблица 1 - Интервалы между обнаружением ошибок.
I |
Xi |
I |
Xi |
i |
Xi |
i |
Xi |
1 |
9 |
8 |
8 |
15 |
4 |
21 |
11 |
2 |
12 |
9 |
5 |
16 |
1 |
22 |
33 |
3 |
11 |
10 |
7 |
17 |
3 |
23 |
7 |
4 |
4 |
11 |
1 |
18 |
3 |
24 |
91 |
5 |
7 |
12 |
6 |
19 |
6 |
25 |
2 |
6 |
2 |
13 |
1 |
20 |
1 |
26 |
1 |
7 |
5 |
14 |
9 |
Таблица 2 - Значения функций.
m |
f26 (m) |
g26 (m,A) |
f26 (m) - g26 (m,A) |
27 |
3.854 |
2.608 |
1.246 |
28 |
2.891 |
2.371 |
0.520 |
29 |
2.427 |
2.172 |
0.255 |
30 |
2.128 |
2.005 |
0.123 |
31 |
1.912 |
1.861 |
0.051 |
32 |
1.744 |
1.737 |
0.007 |
33 |
1.608 |
1.628 |
-0.020 |
34 |
1.496 |
1.532 |
-0.036 |
Простая экспоненциальная модель
Основное различие между этой моделью и моделью Джелинского-Моранды, рассмотренной в предыдущем разделе, в том, что эта модель не использует предположение 6, и, таким образом, допускает, что функция риска может меняться между моментами обнаружения ошибок, то есть она больше не является константой на этих интервалах. Пусть N(t) – число ошибок, обнаруженных к моменту времени, и пусть функция риска пропорциональна количеству ошибок, оставшихся в программе после момента t.
Продифференцируем обе части этого уравнения по времени:
Учитывая, что - это R(t) (количество ошибок, обнаруживаемых в единицу времени), получаем дифференциальное уравнение для R(t)
Если рассмотреть начальные значения N(0)=0, R(0)=KB, то решением уравнения (19) будет
Оценки параметров К и В можно получить аналогично модели Джелинского-Моранды и затем с помощью оценки функции риска можно спрогнозировать ситуацию на следующие этапы отладки.
Геометрическая модель
Рассмотрим геометрическую модель надёжности ПО, предложенной П. Б. Морандой и являющейся модификацией модели Джелинского-Моранды.
В данной модели предполагается, что исходное число ошибок в программе – величина не фиксированная, более того все ошибки не равновероятны. Считается также, что по мере отладки обнаруживать ошибки становится все труднее, таким образом, ПО никогда не освобождается от ошибок. Основные исходные предпосылки для этой модели следующие:
- общее число ошибок неограниченно;
- обнаружение ошибок неравновероятно;
- обнаружение ошибок – процесс, независимый от ошибок;
- ПО работает в условиях, близких к реальным;
- интенсивность обнаружения ошибок образует геометрическую прогрессию и она в интервале между появлениями ошибок постоянна.
Интенсивность отказов имеет следующий вид:
λ ( ti ) = DKi-1, (21)
где : λ (0)=D – исходное значение интенсивности отказов;
K – константа пропорциональности 0 < K < 1;
ti – время между появлениями (i – 1)-ой и i-ой обнаруженных ошибок.
Ksw × (E0 - ( i - 1 ))× ti (22)
Пример:
Нахождение характеристик
Пусть интервалы времени между появлениями ошибок
t1=7 час.; t2=12 час.; t3=23 час.; t4=17 час.; t5=10 час.
Число ошибок n = 5.
Функция правдоподобия примет вид:
(23)
Прологарифмировав и взяв частные производные по D и K, получим условия экстремума:
(24)
Полагая D= Dˆ = и K= Kˆ = и решая систему уравнений (24), получаем оценки максимального правдоподобия Kˆ =0.892 и Dˆ = 0.092
Среднее время до обнаружения (n+1)–ой ошибки:
Значения интенсивности
Таблица 3 - Значения интенсивности отказов
Интервал |
λ(ti) |
1 |
0.092 |
2 |
0.082 |
3 |
0.073 |
4 |
0.065 |
5 |
0.058 |
Модель Шика-Волвертона
Данная модель является модификацией модели Джелинского–Моранды и была предложена Шиком и Волвертоном.
Дополнительно к допущениям модели Джелинского–Моранды используется следующее допущение: частота появления ошибок пропорциональна времени отладки программы ti, т.е. вероятность обнаружения ошибок с течением времени должна возрастать.
λ ( ti ) = Ksw * (E0 - ( i - 1 ))* ti , (25)
где E0 – число ошибок в ПО до начала тестирования и отладки; Ksw – коэффициент Шика-Волвертона; ti – интервал времени между (i-1)-й и i-й обнаруженными ошибками; i – число ошибок обнаруженных к моменту отладки ti.
Для вероятности безотказной работы имеем следующее выражение:
(26)
Функция плотности будет иметь вид:
(27)
Пример:
Оценка характеристик модели Шика-Волвертона E0 и Ksw при помощи метода максимального правдоподобия.
Пусть интервалы времени между отказами
t1=7 час.; t2=12 час.; t3=23 час.; t4=17 час.; t5=10 час..
Пусть число найденных ошибок n = 5.
Функция правдоподобия будет иметь вид:
(28)
Возьмём натуральный логарифм от функции правдоподобия, чтобы произведение функций заменить суммой:
(29)
Возьмём частные производные по E0 и Ksw и найдём условия экстремума:
(30)
Решая систему уравнений (30) и полагая Ksw= Kˆsw и E0 = Eˆ0, получаем оценку коэффициента Шика-Волвертона
Kˆsw =0.001
и оценку числа ошибок
Eˆ0=11
Рассмотренные модели Джелинского-Моранды, Шика-Волвертона можно использовать как на этапе тестирования и отладки, так и на этапе эксплуатации.
Модель Муса
Модель Муса относят к динамическим моделям непрерывного времени. Это значит, что в процессе тестирования фиксируется время выполнения программы (тестового прогона) до очередного отказа. Но считается, что не всякая ошибка ПС может вызвать отказ, поэтому допускается обнаружение более одной ошибки при выполнении программы до возникновения очередного отказа.
Считается, что на протяжении всего жизненного цикла ПС может произойти M0 отказов и при этом будут выявлены все N0 ошибки, которые присутствовали в ПС до начала тестирования.
Общее число отказов M0 связано с первоначальным числом ошибок N0 соотношением
N0= B*M0 (31)
где В — коэффициент уменьшения числа ошибок.
В момент, когда проводится оценка надежности, после тестирования, на которое потрачено определенное время t, зафиксировано т отказов и выявлено п ошибок.
Тогда из соотношения
п = Вт (32)
можно определить коэффициент уменьшения числа ошибок В как число, характеризующее количество устраненных ошибок, приходящихся на один отказ.
В модели Муса различают два вида времени:
1) суммарное время
2) оперативное время t — время выполнения программы, планируемое от контрольного момента и далее при условии, что дальнейшего устранения ошибок не будет (время безотказной работы в процессе эксплуатации).
Для суммарного времени функционирования τ предполагается:
• интенсивность отказов
• скорость изменения числа устраненных ошибок, измеряемая относительно суммарного времени функционирования, пропорциональна интенсивности отказов.
Один из основных показателей надежности, который рассчитывается по модели Муса, — средняя наработка на отказ. Этот показатель определяется как математическое ожидание временного интервала между последовательными отказами и связан с надежностью:
(33)
где t — время работы до отказа.
Если интенсивность отказов
постоянна (т.е. когда длительность
интервалов между последовательными
отказами имеет экспоненциальное распределение),
то средняя наработка на отказ
обратно пропорциональна
Модель переходных вероятностей
Эта модель основана на марковском процессе, протекающем в дискретной системе с непрерывным временем.
Процесс, протекающий в системе, называется марковским (или процессом без последствий), если для каждого момента времени вероятность любого состояния системы в будущем зависит только от состояния системы в настоящее время (t0) и не зависит от того, каким образом система пришла в это состояние. Процесс тестирования ПС рассматривается как марковский процесс.
В начальный момент тестирования (t = 0) в ПС было п ошибок. Предполагается, что в процессе тестирования выявляется по одной ошибке. Тогда последовательность состояний системы (п, п-1, п-2, п-3) и т.д. соответствует периодам времени, когда предыдущая ошибка уже исправлена, а новая еще не обнаружена. Например, в состоянии п-5 пятая ошибка уже исправлена, а шестая еще не обнаружена.

- Общая характеристика моды 1900
- Общая характеристика морского транспорта в Украине
- Общая характеристика Москвы как субъекта РФ
- Общая характеристика мотивации как функции менеджмента
- Общая характеристика МСФО
- Общая характеристика мышечной системы человека
- Общая характеристика налога на прибыль организаций
- Общая характеристика метода искусственного осеменения
- Общая характеристика методов научного познания природы
- Общая характеристика методов психодиагностики и предъявляемые к ним требования
- Общая характеристика Мирового океана
- Общая характеристика мирового рынка IPO
- Общая характеристика мировой системы бухгалтерского учета, основные принципы и определения МСБУ
- Общая характеристика младенческого возраста