Популярные услуги

Все письменные КМ под ключ за 3 суток! (КМ-6 + КМ-7 + КМ-8 + КМ-9 + КМ-10)
КМ-6. Динамические массивы. Семинар - выполню любой вариант!
Любая задача на C/C++
Одно любое задание в mYsql
Любой тест по базам данных максимально быстро на хорошую оценку - или верну деньги!
Любой реферат по объектно-ориентированному программированию (ООП)
Повышение уникальности твоей работе
КМ-2. Разработка простейших консольных программ с использованием ООП + КМ-4. Более сложные элементы ООП - под ключ!
Оба семинара по программированию под ключ! КМ-2. Разработка циклических алгоритмов + КМ-3. Функции и многофайловые программы в Си
Любой реферат по информатике

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

2021-03-09СтудИзба

Лекция 15

Тема: Модели надёжности программ

План

1. Аналитические модели надёжности программ. Модель надёжности с дискретно-понижающейся интенсивностью проявление ошибок.

2. Экспоненциальная и интуитивная модели, модель надёжности больших программных комплексов и др.

3. Методы оценки и прогнозирование показателей надёжности программного обеспечение.

4. Область использования моделей программного обеспечения ТС

Ключевые слова

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

Рекомендуемые материалы

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

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

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

Функция надежности P(t), определяется как вероятность того, что ошибки программы не проявляются на интервале времени от 0 до t, т.е временя ее безотказной работы будет больше.

Функция надежности Q(t) – вероятность того, что в течение времени t произойдет отказ программы как результат проявления действия ошибки в программе. Таким образом:

Q(t) = 1- P(t)

Интенсивность отказов λ(t) – условная плотность вероятности времени от возникновения отказа программы при условии, что до момента t отказа не было.

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

Прогнозирование надежности программ в ходе эксплуатации осуществляется на основе математических моделей надежности, предложенных Литтлвудом, Джелинским-Морандой, Шуманом, Шика-Вольвертоном. Существуют модели надежности программ с дискретно-понижающейся частотой (интенсивностью) появления ошибок и с дискретным увеличением времени наработки на отказ, экспоненциальная модель. Кроме того, созданы модели надежности для прогнозирования надежности программ на ранних этапах их разработки. Рассмотрим некоторые из них [2, 3, 6, 11].

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

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

Модель надежности с дискретно-понижающейся интенсивностью проявления ошибок

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

,                                    

где    М – неизвестное первоначальное число ошибок;

i – число обнаруженных ошибок, зависящих от времени t;

K – некоторая константа.

Рис. 1. Зависимость интенсивности отказов программы от времени работы (модель надежности с дискретно-понижающейся интенсивностью проявления ошибок программе)

На рис. 1 приведена зависимость λ(t) от времени для некоторого участка эксплуатации программы:

1 – момент первого отказа;

2 – момент второго отказа.

Из графика видно, , при  убывает монотонно.

Плотность распределения времени обнаружения i-й ошибки задается соотношением:

Значение неизвестных параметров К и М может быть оценено на основании последовательности наблюдения интервалов между моментами обнаружения ошибок по методу максимального правдоподобия [1, 11].

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

Она построена на предположении о том, что устранение ошибки в программе приводит к увеличению времени наработки на одну и ту же случайную величину.

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

Эта модель основана на следующих предположениях:

1. Время до следующего отказа распределено экспоненциально;

2. Интенсивность отказов программы пропорциональна количеству оставшихся в программе ошибок.

Согласно этим допущениям ВБР программ как функция времени ti равна:

,                                   (1)

где    i – число обнаруженных ошибок;

CD – коэффициент пропорциональности, CD » 0,02 (определяется по методу максимума правдоподобия);

N – первоначальное число ошибок программы. В выражении (1)  отчет времени начинается от момента последнего (i–1)-го отказа программы.

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

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

Модель Шика-Вольвертона.

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

Экспоненциальная модель надежности программ.

Модель основана на предположении об экспоненциальном характере изменения во времени числа ошибок в программе.

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

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

Пусть М – число ошибок, имеющихся в программе перед тестированием (М рассматривается как некоторая константа);

m(τ) – конечное число исправленных ошибок;

m0(τ) – число оставшихся ошибок.

Тогда:

,                                               (2)

Предполагается, что интенсивность отказов пропорциональна числу оставшихся ошибок m0(τ), т.е.:

.                                        (3)

С – коэффициент пропорциональности учитывающий реальное быстродействие компьютера и число команд в программе.

Считаем (дополнительное предположение), что в процессе корректировки новые ошибки не порождаются, т.е. что интенсивность исправления ошибок будет равна интенсивности их обнаружения, т.е.:

                                             (4)

Решая совместно два вышеуказанных уравнения (3) и (4) получаем:

                                (5)

Перед началом работы компьютера (t = 0) ни одна ошибка исправлена не была (τ = 0), поэтому решением управления является:

                                      ,                             (6)

где m – число исправленных ошибок в течении времени τ.

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

Следовательно:

                                     (7)

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

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

Модель надежности больших программных комплексов.

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

Прогнозирование надежности на ранних этапах их разработок.

В настоящее время наиболее отработаны способы прогнозирования ожидаемого числа ошибок в программах [1, 11].

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

,

где    r – число существующих параметров;

aj – коэффициент, зависящий от типа программ (управляющий, ввода-вывода, вычислительные, служебные);

 – j-параметр программы.

В качестве параметров выбраны величины:

 – сложность уловных операторов IF

 – общее число ветвлений;

 – общее число связей с прикладными программами;

 – общее число связей с системными программами;

 – число операций ввода-вывода;

 – число вычислительных операторов;

 – число операторов обработки данных;

 – число комментариев.

Если число ожидаемых в программе ошибок оценено, то интенсивность отказов программы оценивается по выражению:

,                                          (8)

где    tреш – среднее время однократного прохождения программы;

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

Рекомендуется оценивать γ экспериментально (статистически), определяя интенсивность отказа и количество ошибок для нескольких программ. Тогда:

λi, Yi, tреш – соответственно интенсивность отказов, количество ошибок и время решения для i-й программы;

n – количество испытанных программ.

Интуитивная модель.

Эта модель используется при экспериментальной оценке числа ошибок в программе.

Согласно этой модели число ошибок в программе оценивается как:

,

где    Y1, Y2 – число ошибок, обнаруженных первым и вторым программистами, отлаживающих независимо друг от друга первоначальный текст программы, а Y12 – число ошибок, обнаруженных как первым, так и вторым программистами.

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

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

Пусть одна группа тестирования обнаруживает N1, а другая N2 ошибок, N12 – количество ошибок, обнаруженных обеими группами. Обозначим через N общее количество ошибок ПО. Если ввести понятие эффективности тестирования групп как отношения количества выявленных ошибок к их общему числу, то эффективности тестирования групп соответственно , ;

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

;

Подстановка N2 приводит к выражению вида:

,

где ; ;

Пример. Пусть группы тестирования обнаружили соответственно 20 и 25 ошибок, из них 5-ошибки обнаруженные обеими группами. В этом случае Е1 = 0,2; Е2 = 0,25.

Общее количество ошибок N = 100, а количество ошибок, оставшихся в не выявленными – 60.

Контрольные вопросы и задания

1. Для чего используются модели надежности ПО ИС?

2. Какие параметры надежности можно определить с помощью моделей ПО?

3. Оцените преимущества и недостатки известных моделей ПО.

4. С помощью какой модели можно прогнозировать надежность ПО на этапах разработки ИС?

5. Какие существуют методы повышения надежности ПО?

Лекция "Лекция 20" также может быть Вам полезна.

6. Оцените общее число ошибок в тексте программы, если программа проверена тремя специалистами и если первый из них нашел в программе 3 ошибки, второй – 5 ошибок, а третий – 6 ошибок, причем две ошибки из найденных были общими у всех специалистов.

7. Какие существуют пути повышения надежности ПО компьютеров и КС?

8. Для чего используют модель надежности Шумана?

9. В чем суть интуитивной модели надежности программ?

10. Как оценить ожидаемое число ошибок в программе, если использовать модель надежности программ на ранних этапах разработки.

Литература: 2,3,6, 8,11

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5160
Авторов
на СтудИзбе
439
Средний доход
с одного платного файла
Обучение Подробнее