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

       

Классификация моделей надежности


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

В виду большого разнообразия моделей надежности, разработано несколько подходов к классификации этих моделей. Эти подходы  в целом основываются на истории ошибок в проверяемой и тестируемой ПС на этапах ЖЦ. Одной из классификаций моделей надежности ПО является классификация  Хетча [5, 16]. В ней  предлагается  разделение моделей на: прогнозирующие, измерительные и оценочные (рис 9.1).

Прогнозирующие модели надежности основаны на измерении технических характеристик создаваемой программы: длина, сложность, число циклов и степень их вложенности, количество ошибок на страницу операторов программы и др. Например, модель Мотли–Брукса основываются  на длине и сложности структуры программы (количество ветвей, циклов, вложенность циклов), количестве и типах переменных, а также интерфейсов. В этих моделях длина программы служит для прогнозирования количества ошибок, например, для 100 операторов программы можно  смоделировать интенсивность отказов.

Модель Холстеда дает прогнозирование  количества ошибок в программе  в зависимости от  ее объема и таких данных, как число операций (n1) и операндов (n2), а также их общее число (N1, N2).

                        

                                                              Модели

                                                       надежности  ПС



             Прогнозирующие              Измерительные                   Оценочные

         Модель        Модель           Модели         Модели       Модели           Модели


          Холс–          Мотли–                без             с  под–        Муссы,           подсева

          теда             Брукса           подсчета        счетом          выбора           ошибок

                                                       ошибок        ошибок        области

                                                                                                   данных

                                   Рис.9.1.   Классификация моделей надежности

Время программирования программы им предлагается вычислять  по следующей формуле:

           T = (n1 N2   (n1 log2 n1  + n2 log2 n2  ) log2 n1 / 2 n2 S,

где S – число Страуда (Холстед принял равным 18 – число умственных операций в единицу времени).

Объем вычисляется по формуле:

          V = ( 2 + n2*) log2 (( 2 + n2 *), где  n2 * ­–  мах число различных операций.

 Измерительные модели предназначены для измерения надежности программного обеспечения, работающего с заданной внешней средой и имеющие следующие ограничения:

 – программного обеспечения не модифицируется во время периода измерений свойств надежности;

– обнаруженные ошибки не исправляются;

– измерение надежности проводится для зафиксированной  конфигурации программного обеспечения.

Типичным примером таких моделей является модель Нельсона и Рамамурти–Бастани и др.

Модель оценки надежности Нельсона основывается на выполнении  k–прогонов программы при тестировании и   позволяет определить надежность

                R (k) = exp [– å Ñtj l (t)],

где  tj – время выполнения  j–прогона, l (t) = – [ln (1– qi) Ñj] и при   qi  £ 1  она интерпретируется  как интенсивность отказов.

В процессе испытаний программы на тестовых nl

прогонах  оценка надежности вычисляется по формуле

            R (l) =  1 – nl / k, где k

– число прогонов программы.

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



Оценочные модели основываются на серии  тестовых прогонов и проводятся на этапах тестирования ПC. В тестовой среде  определяется вероятность отказа программы при ее выполнении или тестировании.

Эти типы моделей могут применяться на этапах ЖЦ. Кроме того,  результаты прогнозирующих моделей могут использоваться как входные данные  для оценочной модели. Имеются модели (например, модель Мусы), которые  можно рассматривать как оценочную и в тоже время, как  измерительную модель [19, 20].

Другой вид классификации моделей предложил Гоэл [21, 22], согласно которой модели надежности базируются на отказах и  разбиваются на четыре класса моделей:

– без подсчета ошибок,

– с подсчетом отказов,

– с подсевом ошибок,

–  модели с выбором областей входных значений.

 Модели без подсчета  ошибок   основаны на  измерении  интервала  времени  между 

отказами и позволяют спрогнозировать количество ошибок, оставшихся в программе.  После каждого отказа оценивается надежность и определяется среднее время до следующего отказа. К такой модели относится модель Джелински и Моранды, Шика Вулвертона и Литвуда–Вералла [23, 24].

Модели  с подсчетом отказов базируются   на количестве ошибок, обнаруженных на заданных интервалах времени. Возникновение отказов в зависимости от времени  является стохастическим процессом с непрерывной интенсивностью, а количество отказов является случайной величиной. Обнаруженные ошибки устраняются  и поэтому количество ошибок в единицу времени уменьшается. К этому классу моделей относится модель Шумана, Шика–Вулвертона, Пуассоновская модель и др.[24–,27]

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


Результат сравнения используется для оценки надежности и качества программы.  При внесении изменений в программу  проводится повторное тестирование и оценка надежности.  Этот подход к организации тестирования отличается громоздкостью и редко используется из–за дополнительного объема работ, связанных с подбором, выполнением  и устранением искусственных ошибок.

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

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

модели, которые рассматривают количество отказов как  Марковский процесс;

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

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


Содержание раздела