Общая характеристика моделей надежности программных средств

Автор: Пользователь скрыл имя, 24 Марта 2013 в 23:04, реферат

Описание работы

Модели надежности программных средств подразделяются на аналитические и эмпирические. Аналитические модели дают возможность рассчитать количественные показатели надежности, основываясь на данных о поведении программы в процессе тестирования. Эмпирические модели базируются на анализе структурных особенностей программ.

Содержание

Введение 3
1 Аналитические модели надежности ПС 4
1.1 Динамические модели надежности 4
1.2 Статические модели надежности 20
2 Эмпирические модели надежности 34
Заключение 42
Список использованных источников 43

Работа содержит 1 файл

Модели надежности.doc

— 647.50 Кб (Скачать)

ГОУ ВПО Ростовский Государственный Экономический Университет («РИНХ»)

 

Кафедра экономической информатики и

автоматизации управления

 

Р Е Ф Е  Р А Т 

на  тему: «Общая характеристика моделей  надежности программных средств»

 

 

 

Факультет:        Информатизации и управления

По дисциплине:     Метрология и сертификация ПО

Группа:     351

Специальность:     Прикладная информатика в экономике

Вариант:       11

 

Выполнила:

студентка       

 

Проверила:     

ст. преподаватель   

 

 

Ростов - на - Дону

2010 год  
Содержание:

 

Введение           3

1 Аналитические модели надежности ПС     4

1.1 Динамические модели надежности     4

1.2 Статические модели надежности     20

2 Эмпирические модели надежности      34

Заключение          42

Список использованных источников      43

 

Введение

В международном стандарте ISO 9126:1991 надежность выделена как одна из основных характеристик качества программного обеспечения (ПО). Стандартный словарь терминов программного инжиниринга определяет надежность программного обеспечения как способность системы или компонента выполнять требуемые функции в заданных условиях на протяжении указанного периода времени.

Сама проблема надежности программного обеспечения имеет, по крайней мере, два аспекта: обеспечение и оценка (измерение) надежности. Практически вся имеющаяся литература посвящена первому аспекту, а вопрос оценки надежности компьютерных программ недостаточно проработан. Вместе с тем очевидно, что надежность программы гораздо важнее таких традиционных ее характеристик, как время исполнения или требуемый объем оперативной памяти, однако никакой общепринятой количественной меры надежности программ до сих пор не существует.

Модели надежности программных  средств подразделяются на аналитические и эмпирические. Аналитические модели дают возможность рассчитать количественные показатели надежности, основываясь на данных о поведении программы в процессе тестирования. Эмпирические модели базируются на анализе структурных особенностей программ.

Аналитические модели представлены двумя  группами: динамические и статические. В динамических моделях поведение ПО (появление отказов) рассматривается во времени. Если фиксируются интервалы каждого отказа, то получается непрерывная картина появления отказов во времени (модели с непрерывным временем). Может фиксироваться только число отказов за произвольный интервал времени. В этом случае поведение ПО может быть представлено только в дискретных точках (модели с дискретным временем).

В статических моделях появление  отказов не связывают со временем, а учитывают зависимость количества ошибок либо от числа тестовых прогонов (модели по области ошибок), либо от характеристики входных данных (модели по области данных).

 

1 Аналитические модели надежности ПС

Аналитическое моделирование надежности ПС включает четыре шага:

  1. определение предположений, связанных с процедурой тестирования ПС;
  2. разработка или выбор аналитической модели, базирующейся на предположениях о процедуре тестирования;
  3. выбор параметров моделей с использованием полученных данных;
  4. применение модели — расчет количественных показателей надежности по модели.

1.1 Динамические модели надежности

Свойства динамических методов:

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

Достоинства:

  • Позволяют получать абсолютные показатели надежности

Недостатки

  • высокая трудоемкость сбора исходной информации
  • использование упрощающих предположений о взаимных влияниях программных ошибок
  • сильная зависимость точности прогнозов от качества и объема исходной информации

 

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

 Исходные данные для модели Шумана, которая относится к динамическим моделям дискретного времени, собираются в процессе тестирования ПС в течение фиксированных или случайных временных интервалов. Каждый интервал — это стадия, на которой выполняется последовательность тестов и фиксируется некоторое число ошибок.

Модель Шумана может быть использована при определенным образом организованной процедуре тестирования. Использование модели Шумана предполагает, что тестирование проводится в несколько этапов. Каждый этап представляет собой выполнение программы на полном комплексе разработанных тестовых данных. Выявленные ошибки регистрируются (собирается статистика об ошибках), но не исправляются. По завершении этапа на основе собранных данных о поведении ПС на очередном этапе тестирования может быть использована модель Шумана для расчета количественных показателей надежности. После этого исправляются ошибки, обнаруженные на предыдущем этапе, при необходимости корректируются тестовые наборы и проводится новый этап тестирования. При использовании модели Шумана предполагается, что исходное количество ошибок в программе постоянно и в процессе тестирования может уменьшаться по мере того, как ошибки выявляются и исправляются. Новые ошибки при корректировке не вносятся. Скорость обнаружения ошибок пропорциональна числу оставшихся ошибок. Общее число машинных инструкций в рамках одного этапа тестирования постоянно.

Предполагается, что до начала тестирования в ПС имеется ЕT ошибок. В течение времени тестирования τ обнаруживается εс ошибок в расчете на команду в машинном языке.

Таким образом, удельное число ошибок на одну машинную команду, оставшихся в системе после т времени  тестирования, равно:

      (1)

где IT — общее число машинных команд, которое предполагается постоянным в рамках этапа тестирования.

Автор предполагает, что значение функции частоты отказов Z(t) пропорционально числу ошибок, оставшихся в ПС после израсходованного на тестирование времени τ:

где С — некоторая константа;

t — время работы ПС без отказа.

Тогда, если время работы ПС без  отказа t отсчитывается от точки t  = 0, а τ остается фиксированным; функция надежности, или вероятность безотказной работы на интервале времени от 0 до t, равна:

   (2)

    (3)

Из величин, входящих в формулы (2) и (3), не известны начальное значение ошибок в ПС (ET ) и коэффициент пропорциональности С. Для их определения прибегают к следующим рассуждениям. В процессе тестирования собирается информация о времени и количестве ошибок на каждом прогоне, т.е. общее время тестирования τ складывается из времени каждого прогона:

Предполагая, что интенсивность  появления ошибок постоянна и  равна λ, можно вычислить ее как число ошибок в единицу времени:

      (4)

где Ai — количество ошибок на i-м прогоне;

      (5)

Имея данные для двух различных  моментов тестирования τA и τb, которые выбираются произвольно с учетом требования, чтобы εcb) > εcA), можно сопоставить уравнения (3) и (5) при τA и τb

    (6)

    (7)

Вычисляя отношения (6) и (7), получим:

   (8)

Подставив полученную оценку параметров ET  в выражение (6), получим оценку для второго неизвестного параметра:

     (9)

Получив неизвестные Eи С, можно рассчитать надежность программы по формуле (2).

Например, в программе имеется It = 4381 оператор. В процессе последовательных тестовых прогонов были получены следующие данные:

N прогона

1

3

4

5

6

7

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...

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

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

Это одна из первых и простейших моделей  классического типа, послужившая  основой для дальнейших разработок в этом направлении. Модель была использована при разработке таких значительных программных проектов, как программа Аполло (некоторых ее модулей).  Модель Джелинского-Моранды основана на следующих предположениях:

  1. Интенсивность обнаружения ошибок R(t) пропорциональна текущему количеству ошибок в программе, то есть изначальному количеству ошибок за вычетом количества ошибок, уже обнаруженных на данный момент.
  2. Все ошибки в программе равновероятны и не зависят друг от друга.
  3. Все ошибки имеют одинаковую степень важности.
  4. Время до следующего отказа программы распределено экспоненциально.
  5. Исправление ошибок происходит без внесения в программу новых ошибок.
  6. 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) можно записать как

                                                     (10)

или, переходя к логарифму функции правдоподобия, имеем

     (11)

Максимум функции правдоподобия  можно найти, используя следующие  условия

                           (12)

                                         (13)

Из формулы (12) получается оценка максимального правдоподобия для K

                                (14)

Подставляя выражение (14) в (13), находим нелинейное уравнение для вычисления –оценки максимального правдоподобия для B

                                               (15)

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

                                            (16)

где  

Поскольку имеют смысл лишь целочисленные  значения , функции из выражения (16) можно рассматривать только для целочисленных аргументов. Более того, m≥n+1, поскольку n ошибок с программе уже обнаружено. Таким образом, оценка максимального правдоподобия для B может быть получена с помощью вычисления начальных значений функций fn(m) и gn(m) для m=n+1, n+2…, и анализа разницы  |fn(m)-gn(m)|.

Поскольку правая и левая части выражения (16) одинаково монотонны, это порождает проблему единственности решения, а также проблему его существования. Конечное решение B^ в области B^≥n существует тогда и только тогда, когда выполняется неравенство

Информация о работе Общая характеристика моделей надежности программных средств