Всё для Учёбы — студенческий файлообменник
1 монета
doc

Студенческий документ № 043120 из НИТУ МИСиС

5.5. Модели надёжности программных систем.

5.5.1. Классификация моделей надежности программных средств

Свойство надежности является важным для многих искусственно созданных объектов. В Википедии оно определяется так: "Надёжность - свойство объекта сохранять во времени в установленных пределах значения всех параметров, характеризующих способность выполнять требуемые функции в заданных режимах и условиях применения, технического обслуживания, хранения и транспортирования". Как правило, с надежностью связывают его эксплуатационные свойства, и прежде всего такие:

* безотказности,

* долговечности,

* ремонтопригодности

* сохраняемости,

а также их комбинацией.

В соответствии с ГОСТ 27.002-80 эти свойства уточняются следующим образом.

Показатели безотказности

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

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

3. Средняя наработка до отказа - математическое ожидание наработки системы до первого отказа (существенно для невосстанавливаемых систем).

4. Средняя наработка на отказ (То, MTBF - Main Time Between Failures) - отношение наработки восстанавливаемой системы к математическому ожиданию числа ее отказов в пределах этой наработки (имеет смысл только для восстанавливаемых систем).

5. Интенсивность отказов - условная плотность вероятности возникновения отказа невосстанавливаемой системы, определяемая для рассматриваемого момента времени при условии, что до этого момента отказ не возник.

6. Параметр потока отказов (X(t)) - отношение среднего числа отказов для восстанавливаемой системы за произвольно малую ее наработку к значению этой наработки.

Показатели долговечности

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

2. Срок службы (Tcc) - календарная продолжительность от начала эксплуатации системы или ее возобновления после ремонта до перехода в предельное состояние.

3. Комплексные показатели надежности.

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

1. Вероятность восстановления работоспособного состояния - вероятность того, что время восстановления работоспособного состояния не превысит заданного.

2. Среднее время восстановления работоспособного состояния (Tв) - математическое ожидание времени восстановления работоспособного состояния системы.

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

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

* Зрелость (величина, обратная частоте критических отказов, вызванных ошибками в ПО).

* Устойчивость к отказам (способность поддерживать заданный уровень работоспособности при внутренних и внешних отказах).

* Способность к восстановлению (способность восстанавливать определенный уровень работоспособности и целостность данных после отказа).

* Соответствие стандартам надежности.

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

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

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

Рис.5.20. Другая классификация моделей надежности программного обеспечения

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

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

2. Оценочные. Такие модели строятся на основе анализа результатов тестирования программ. Они позволяют на основе полученных значений характеристик надежности принимать решение о необходимости продолжать процедуру тестирования программного средства. К этой группе относятся такие модели: Джелинского-Моранды, Миллса и Простая Интуитивная или Эвристическая модель двух независимых групп тестирования Руднера.

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

Теперь перейдем к рассмотрению конкретных моделей.

5.5.2. Статические модели.

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

5.5.2.1. Модель Миллса

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

N = (S?n)/V.

Где N - первоначальное число ошибок в программе, S - количество искусственно внесенных ошибок, n - число найденных собственных ошибок, V - число обнаруженных к моменту оценки искусственных ошибок.

Однако методика Милса предполагает вычисление и еще одной полезной величины - мерой доверия к модели. Она рассчитывается по такой формуле

Здесь К - величина предполагаемого количества ошибок в программе.

Величина С оценивает вероятность правильного значения N. Можно сказать, что вторая формула оценивает качество значения полученного из первой формулы.

Другой случай представленный таким соотношением (вторая формула Миллс)

соответствует ситуации, когда были найдены не все внесенные ошибки. Она применяется в случае, когда VK

даст С=1.

5.5.2.2. Модель Липова.

Модифицированную модель Миллса предложил Липов [65]. В ней включив в нее вероятность обнаружения ошибки при использовании различного числа тестов. В ней, как и в модели Миллса считается, что собственные и искусственные ошибки имеют равную вероятность быть найденными. В методике Липова предложена такая формула

где N - первоначальное число ошибок в программе,

m - количество тестов,

S - количество искусственно внесенных ошибок,

n - число найденных собственных ошибок,

V - число обнаруженных к моменту оценки искусственных ошибок.

Применение рассматриваемой модели Липова требует выполнения следующие условия:

N>n>0; S>V>0; m>n+ V>0.

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

5.5.2.3. Простая интуитивная модель

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

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

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

Согласно формуле общего числа ошибок (N) получим

Итак, в программе N = 80 ошибок и из них не обнаружено 80 - 40 - 20 + 10 = 30 ошибок.

5.5.3.Динамические модели.

Второй тип модели, для которых приведены примеры расчета, называются динамическими. Они используют время как параметр и делятся на два класса: дискретные и непрерывные. В этой части рассмотрим только одну модель.

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

Модель надежности программного обеспечения Джелински-Моранды основана на методе максимального правдоподобия. Она относиться к классу оценочных моделей и применяется на этапе тестирования.

В ее основе положены следующие предпосылки:

а) Экспоненциальная зависимость между плотностью вероятности интервалов времени между появлением ошибок.

б) Интенсивность ошибок линейно зависит от количества оставшихся ошибок (на любом случайном интервале).

в) После каждого появления устраняют ошибку и не вносят новую.

г) Каждый тест находит только одну ошибку.

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

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

?(ti) = (N - i + 1)?k.

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

Для плотности вероятности ошибки р(ti) на случайном интервале ti справедливо такое соотношение.

р(ti) = (N - i + 1)?k ? (ехр(N - i + 1)).

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

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

N - общее количество ошибок в программе;

k - коэффициент пропорциональности в соотношении для вычисления интенсивности ошибок,

i - номер теста, выевшего ошибку,

ti - продолжительность интервалов тестирования.

Обнаружили первую ошибку на первом тесте. Значит, следующая ошибка вероятнее появиться на втором тесте или позже. А следующая - на третьем тесте (время от второго теста - 3) или позже.

Проиллюстрируем это примером.

Рис.5.21. Пример реализации допущения об уменьшения интенсивности появления ошибок в программе.

Здесь верхняя шкала отмеряет номер теста, а нижняя - время появления тестов, обнаруживших ошибки (t1=1; t2=2; t3=3).

Приведем расчет по модели Джилински-Моранды. Условия решения задачи будут таковыми. В результате тестирования программы серией из семи тестов обнаружены две ошибки. В таблице приведены данные о результатах испытаний.

Табл.5.51. Результаты испытаний.

Номер теста 1 2 3 4 5 6 7 Время окончания 3 5 7 10 12 14 17 нет* нет да нет нет нет да * "нет" означает, что ошибки не обнаружено, а "да" - ошибка обнаружена.

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

Решение задачи. По условию задачи количество тестов семь, а две ошибки (n=2) обнаружены третьим и седьмым тестом (t1=3, t2=4). Как видим, соблюдаются условия возрастания времени обнаружения ошибок (t2>t1). Можно записать такую систему уравнений

. После подстановки получим

или . Решив эту систему, получим серию соотношений

(2N-1)(7N-4)=14(N2-N),

14N2-7N-8N+4=14N2-14N,

-N+4=0

из которых получим сначала N=4, а затем k=1/12.

Таким образом, всего в программе имеется 4 ошибки, а не обнаруженными осталось две ошибки (N-2=4-2=2).

Показать полностью…
154 Кб, 16 января 2016 в 2:07 - Россия, Москва, НИТУ МИСиС, 2016 г., doc
Рекомендуемые документы в приложении