лекция надежность. Модели надежности Одной из важных характеристик качества программного изделия является надежность
Скачать 246.04 Kb.
|
Модели надежностиОдной из важных характеристик качества программного изделия является надежность.Надежность это свойства программного изделия сохранять работоспособность в течение определенного периода времени, в определенных условиях эксплуатации с учетом последствий для пользователя каждого отказа.Модели надежностиРаботоспособным называется такое состояние программного изделия, при котором оно способно выполнять заданные функции с параметрами, установленными требованиями технического задания. С переходом программного изделия в неработоспособное состояние, связано событие отказа. Причиной отказа (перехода из работоспособного в неработоспособное состояние) программного изделия и технической системы различны.Модели надежностиЕсли для технической системы может быть технический износ узлов и деталей, то программные изделия физическому износу не подвержены. Моральный износ, характерный для программного изделия не может быть причиной нарушения работоспособности, согласно определению этого термина данного выше. Причиной отказа программного изделия является невозможность его полной проверки в процессе тестирования испытаний. При эксплуатации программного изделия в реальных условиях может возникнуть такая комбинация входных данных, которая вызывает отказ. Таким образом, работоспособность программного изделия зависит от входной информации, и чем меньше это зависимость, тем выше уровень надежности. Модели надежностиДля надежности используется три группы показателей:качественные; порядковые; количественные; Модели надежностиРассмотрим основные количественные показатели программного изделия: 1. Вероятность безотказной работы р(tз) это вероятность того, что в пределах заданной наработки отказ системы не возникает. Наработка, продолжительность или объем работы где t – случайное время работы программного изделия до отказа; tз – заданная наработка. Модели надежности2. Вероятность отказа это вероятность того, что в пределах заданной наработки отказ системы возникает, это показатель обратный предыдущему. Модели надежности3. Интенсивность отказов системы λ(t)Это условная плотность вероятности возникновения отказа программного изделия в определенный момент времени при условии того, что до этого отказ не возник. где f(t) – плотность вероятности отказа в момент времени t. Модели надежностиСуществует следующая связь между λ(t) и p(t) В частном случае при λ=const, то Если в процессе тестирования фиксируется число отказов за определенный временной интервал, то λ(t) это число отказов в единицу времени. Модели надежности4. Средняя наработка до отказа Тi Это математическое ожидание времени работы программного изделия до очередного отказа где t – время работы программного изделия от k-1 до k отказа, иначе среднюю наработку на отказ Ti можно представить: где ti - время работы программного изделия между отказами; n – количество отказов Модели надежности5. Среднее время восстановления Tв Математическое ожидание времени восстановления tBi, то есть времени затраченного на обнаружение и локализацию отказа, времени устранения отказа и времени пропускной проверки работоспособности Для этого показателя термин «время» это время, затраченное специалистом. Модели надежности6. Коэффициент готовности k2 Это вероятность того, что программное изделие ожидается в работоспособном состоянии, в произвольный момент времени его используют по назначению Модели надежностиПричиной отказа программного изделия являются ошибки, которые могут быть вызваны: внутренним свойством программного изделия реакцией программного изделия на изменение внешней среды функционирования. Модели надежностиПоследнее значит, что даже при самом тщательном тестировании, если предположить, что удалось избавиться от внутренних ошибок, никогда нельзя с полной уверенностью утверждать, что в процессе эксплуатации программного изделия отказ не возникнет. Естественно, мы можем и должны повышать уровень надежности программного изделия, но достижений сто процентной надежности вне пределах возможного. Причиной ошибок программного изделия является нарушение правильности перевода информации из одного представления в другое. Создание программного изделия рассматривается как совокупность процессов перевода информации из одной формы представления в другую, с фиксацией множества промежуточных решений с участием специалистов различного профиля и квалификации. Модели надежностиКроме того, необходимо учитывать возможность взаимного перекрытия процессов и наличия циклов обратной связи. Необходимо учитывать, что ошибки сделанные в процессе проектирования, могут быть обнаружены при программировании, тогда возникает необходимость возврата к предыдущему этапу и устранению ошибок. Разнообразие и сложность видов деятельности в процессе создания программного изделия приводит к появлению множества типов ошибок, которые нуждаются в систематизации. Приведенная ниже классификация ошибок по категориям основана на имперических данных, полученных при разработке различных программных изделий. Под категорией ошибок понимается видовое описание ошибок конкретных типов. В полной классификации выделено более ста категорий, объединенных в двадцать классов. Классы программных ошибок:
Модели надежностиПри сборке и анализе данных об ошибках придерживаются следующих правил: если N – общее число прогонов, K – оприоре известное число типов, то определяется это функцией: аi , Ni>0 0, Ni=0. где ai – вероятность выявления при тестировании ошибки i-го типа. В этой модели вероятность должна оцениваться на основании оприорной информации или данных предшествующего периода функционирования однотипных программных средств. Ошибки программы по категориям и вероятности их появления
Аналитические модели надежностиАналитическое моделирование включает четыре шага: Определение предположений, связанных с процедурой тестирования программных средств; Разработка или выбор аналитической модели, базирующейся на предположениях о процедуре тестирования; Выбор параметров модели с использованием полученных данных; Применение модели, то есть расчет количественных показателей надежности модели Динамические модели надежностиМодель Шумана Исходные данные для модели Шумана, которая относится к динамическим моделям дискретного времени, собираются в процессе тестирования программных средств в процессе фиксированных или случайных интервалов. Каждый интервал это стадия, на которой выполняется последовательность тестов и фиксируется некоторое число ошибок. Модель Шумана может быть использована определенным образом при организованной процедуре тестирования. Использование модели Шумана предполагает, что тестирование проводят в несколько этапов. Каждый этап представляет собой выполнение программы на полном комплексе разработанных тестовых данных. Выявленные ошибки регистрируются (собирается статистика об ошибках, но они не исправляются), при завершении этапа на основе собранных данных, на основе программных средств на очередном этапе тестирования, м. т. использует модель Шумана для расчета количественных показателей надежности. Модели надежностиПосле этого исправленные ошибки обнаруживают на предыдущем этапе, корректируются тестовые наборы и проводится новый этап тестирования. При использовании этой модели предполагается, что исходное количество ошибок постоянно и в процессе тестирования может уменьшаться по мере того, как ошибки исправляются. Новые ошибки при корректировке не вносятся. Скорость обнаружения ошибок пропорциональна числу оставшихся ошибок. Общее число машинных инструкций в рамках одного этапа тестирования постоянно. Предполагается, что для начала тестирования в программном средстве имеется ET ошибок. В течении времени обнаруживается ξc ошибок в расчете на команду в машинном языке. Таким образом, удельное количество ошибок на одну машинную команду, оставшуюся в системе после времени тестирования: где IT - общее число машинных команд, которое предполагается постоянным в рамках этапа тестирования. Модели надежностиМожно предполагать, что значение функции частоты отказов Z(t) пропорционально числу ошибок, оставшихся в программном средстве после израсходованного на тестирование времени , тогда где с – временная константа; t – время работы программного средства без отказа. Тогда, если время работы программного средства без отказа t отсчитывается от точки t=0, а остается фиксированным, то функция надежности или вероятность безотказной работы на интервале времени равна: Модели надежностиИз величин, входящих в две последние формулы, неизвестны: начальные значения ошибок в программном средстве ET и коэффициент пропорции С. Для их определения прибегают к следующим рассуждениям: в процессе тестирования собирают информацию о времени и количестве ошибок на каждом прогоне, то есть общее время тестирования складывается из времени каждого прогона. Предположим, что интенсивность появления ошибки постоянна и ровна некоторой величине λ, и можно вычислить ее, как число ошибок в единицу времени: где Ai – количество ошибок на i-том прогоне Модели надежностиДалее, имея данные о двух различных моментах тестирования во времени , которые выделяются произвольно с учетом времени, чтобы: Можно сопоставить уравнение вычисления при моментах и , получим: Модели надежностиИз этих формул следует, что Подставим полеченную оценку параметров ET в выражение (1) и получим оценку для второго неизвестного параметра С, то есть Получив ET и С можно рассчитывать надежность программы по формуле (2) Преимущество модели заключается в том, что она является прогнозной, и основываясь на данных получаемых в процессе тестирования, дает возможность предсказать вероятность безотказной работы программы на последних этапах ее выполнения. Модели надежностиМодель Джелинского-Моранды Эта модель относится также к динамическим моделям непрерывного времени. Исходные данные для использования этой модели, собирающиеся в процессе тестирования программного средства. При этом фиксируется время до очередного отказа. Основное положение, на котором базируется модель, заключается в том, что значение интервала времени тестирования между обнаружением двух ошибок имеет экпотенцильное распределение с частотой ошибки или интенсивностью ошибки, пропорционально числу еще не выявленных ошибок. Каждая обнаруженная ошибка устраняется, и число оставшихся ошибок уменьшается на одну. Модели надежностиФункция плотности распределения времени обнаруживается первой ошибкой, отсчитывается от момента выявления i-1 ошибок, имеет вид: где λi – частота отказа (интенсивность отказа), которая пропорциональна числу еще не выявленных ошибок в программе, то есть: N – число ошибок присутствующих в программе. Модели надежностиНаиболее вероятные значения Ň величин, Č – оценка максимального правдоподобия, можно определить на основе данных полученных при тестировании. Для этого фиксируется время выполнения программы до очередного отказа t1, t2… tk, а значения Ň и Č можно получить решив систему уравнений: Модели надежностиГде где а Модели надежностиПоскольку полученные значение Ň и Č – вероятностные, и точность их зависит от количества интервалов тестирования или количества ошибок, найденных к моменту оценки надежности, то асимптотические оценки дисперсии определяют с помощью следующих формул: , гдеМодели надежностиДля того, чтобы получить значение λi нужно вместо N и С подставить значения Ň и Č, рассчитав k значений по формуле, для вычислений λi, и подставив в формулу для p(ti) можно определить вероятность работы на различных временных интервалах. На основе полученных расчетных данных, строится график зависимости вероятности безотказной работы от времени. Модели надежностиМодель Шика-Волвертона Модификация модели Джелинского-Моранды для случая возникновения на рассматриваемом интервале более одной ошибки, предложена Волвертоном и Шиком. При этом считается, что исправление ошибок производится только после истечения интервала времени, на котором они возникли. В основе модели Шика-Волвертона лежит положение, согласно которому частота ошибок пропорциональна не только количеству ошибок в программах, но и времени тестирования, то есть вероятность обнаружения ошибки с течением времени возрастает. Частота ошибок (интенсивность обнаружения ошибки λi) предполагается постоянной в течение интервала времени ti и пропорциональна числу ошибок, оставшихся в программе по истечению i-1 интервала. Модели надежностиНо она пропорциональна также суммарному времени, уже затраченному на тестирование (включая среднее время выполнения программы в текущем интервале). (3)В данной модели наблюдаемым событием является число ошибок, обнаруживаемых в заданном интервале времени, а не время ожидания каждой ошибки, как это было в модели Джолинского-Моранды.Модели надежностиВ связи с этим, модель относится к группе дискретных динамических моделей, а уравнения для определения Ň и Č имеют несколько иной вид: , где
Ti-1 - время, накопленное за i-1 интервал Модели надежностиесли T0 = 0, ni-1 - суммарное число ошибок, обнаруженных за период от 1 до i-1 интервала времени включительно если n0 = 0, M - общее число временных интервалов, - суммарное число обнаруженных ошибок При M=1 уравнение приобретает следующий вид: M = k ni-1 = i-1 Модели надежностиТаким образом данная модель является частным случаем модели Шика-Волвертона для случаев, когда тестируется время до появления очередной ошибки. Модели надежностиМодель Мусса Данная модель относится к динамическим моделям непрерывного времени. Это значит, что в процессе тестирования фиксируется время выполнения программы (тестового прогона) до очередного отказа. Считается, что не всякая ошибка в ПС может вызвать отказ, поэтому допускается обнаружение более одной ошибки при выполнении программы до возникновения очередного отказа. Считается, что на протяжении всего жизненного цикла ПС может произойти всего М0 отказов, и при этом выявлены все N0 ошибок, которые присутствовали в ПС до начала тестирования. Общее число отказов М0 с первоначальным числом ошибок N0 соотношением: N0=BM0 , где В - коэффициент уменьшения числа ошибок. Модели надежностиВ момент, когда производится оценка надежности после проведения тестирования, на которое потрачено определенное время , зафиксировано m отказов и выявлено n ошибок. Тогда из соотношения n=Bm следует B=n/m/ Определяется коэффициент уменьшения числа ошибок В как число, характеризующее количество устраненных ошибок, приходящихся на 1 отказ. В данной модели различают 2 вида времени: 1)Суммарное время функционирования , которое учитывает чистое время тестирования до контрольного момента, т.е. до того момента, когда производится оценка надежности; 2)Оперативное время t - это время выполнения программы, планируемой от контрольного момента и далее, при условии, что дальнейшего устранения ошибок не будет, т.е. время безотказной работы. Модели надежностиДля суммарного времени функционирования предполагаются ограничения: - интенсивность отказов пропорциональна числу неустраненных ошибок; - скорость изменения числа устраненных ошибок, измеряемая относительно суммарного времени функционирования, пропорциональна интенсивности отказов; Модели надежностиОдин из основных показателей надежности, который рассчитывается по данной модели, - средняя наработка на отказ. Этот показатель определяется, как математическое ожидание временного интервала между последовательными отказами и связан с надежностью: где t - это время работы до отказа. Если интенсивность отказа постоянна (т.е. длительность интервала между последовательными отказами имеет экспоненциальное распределение), то средняя наработка на отказ обратно пропорциональна интенсивности отказов. Модели надежностиЕсли интенсивность отказа постоянна (т.е. длительность интервала между последовательными отказами имеет экспоненциальное распределение), то средняя наработка на отказ обратно пропорциональна интенсивности отказов. По данной модели средняя наработка на отказ зависит от суммарного времени функционирования : где Т0 - средняя наработка на отказ в начале испытания (тестирования), С - коэффициент сжатия тестов, который вводится для устранения избыточности при тестировании Если, например, 1 час тестирования соответствует 12 часам работы в реальных условиях, то коэффициент сжатия тестов = 12. Модели надежностиПараметр Т0 можно предсказать из следующего соотношения: , гдеf - это средняя скорость исполнения программы, отнесенная к числу команд (операторов);k - это коэффициент проявления ошибок, связывающий частоту возникновения ошибок со «скоростью ошибок», которая представляет собой скорость, с которой встречались бы ошибки в программе, если программа работала линейно (последовательно по командам).В настоящее время значение k приходится определять эмпирическим путем, т.е. по однотипным программам, его значение изменяется от 1,54*10-7 до 3,99 *10-7; N0 - начальное число ошибок. Можно рассчитывать с помощью любой модели, позволяющей определять эту величину на основе статистических данных, полученных при тестировании, например, модели Шумана. Модели надежностиНадежность R для оперативного периодавыражается равенством: Если в договоре с заказчиком оговорена требуемая величина времени наработки на отказ TF, то можно определить число отказов и дополнительное время функционирования тестирования , обеспечивающее заказанную TF. Их можно рассчитать по следующей формуле: k=0,1,…,n - функция числа ошибок, найденных к этому времени в ПС. Модели надежностиПредполагается, что и могут быть получены на основе предыдущего опыта разработчика. Модель позволяет накапливать данные об ошибках, что дает возможность повышения точности анализа на основе предыдущего моделирования. Практическое использование этой модели требует громоздких вычислений и программной поддержки. СТАТИЧЕСКИЕ МОДЕЛИ НАДЕЖНОСТИЭти модели принципиально отличаются от динамических прежде всего тем, что в них не учитывается время появления ошибок в процессе тестирования и не используется никаких предположений о поведении функции риска . Эти модели строятся на твердом статическом фундаменте. Модели надежностиМодель Миллса. Использование этой модели предполагает необходимость перед началом тестирования искусственно вносить в программу (засорять) некоторое количество известных ошибок. Ошибки вносятся случайным образом и фиксируются в протоколе искусственных ошибок. Специалист, проводящий тестирование, не знает ни количества, ни характера внесенных ошибок до момента оценки показателя надежности по модели Миллса. Предполагается, что все ошибки, как естественные, так и искусственно внесенные, имеют равную вероятность быть найденными в процессе тестирования. Тестируя программу в течение некоторого времени, собирается статистика об ошибках. Модели надежностиВ момент оценки надежности по протоколу искусственных ошибок все ошибки делятся на собственные и искусственные. Соотношение дает возможность оценить N - первоначальное количество ошибок в программе. В данном соотношении, которое называется формулой Миллса: S - количество искусственно внесенных ошибок, n - число найденных собственных ошибок, v - число обнаруженных к моменту оценки искусственных ошибок. Например, если в программу внесено 50 ошибок и к некоторому моменту обнаружено 25 собственных и 5 внесенных ошибок, то по формуле Миллса делается предположение, что первоначально в программе было 250 ошибок. Модели надежностиВторая часть модели связана с проверкой гипотезы от N. Предположим, что в программе имеется k собственных ошибок и внесли дополнительно S ошибок. Пусть в процессе тестирования были обнаружены все S внесенных ошибок и n собственных. Тогда по формуле Миллса можно предположить, что в программе было n собственных ошибок. Вероятность, с которой можно высказать это предположение, можно рассчитать так: (1) Модели надежностиНапример, если утверждается, что в программе нет ошибок, и при внесении в программу 10 ошибок, и все они в процессе тестирования обнаружены, то с вероятностью 0,9 можно утверждать, что в программе нет ошибок. Но если была обнаружена 1 ошибка, то С=1, т.к. n>k и наши предположения о том, что в программе нет ошибок на 100% не подтвердились. Таким образом, величина С является мерой доверия к модели и показывает вероятность того, насколько правильно найдено значение N. Эти 2 связанных между собой по смыслу соотношения образуют полезную модель ошибок. Первая предсказывает возможное число первоначально имеющихся в программе ошибок, а второе используется для установления доверительного интервала прогнозов. Однако формула (1) для расчета С не может быть использована в случае, когда не обнаружены все искусственные ошибки. Модели надежностиДля этого случая, когда оценка надежности производится до момента обнаружения всех S рассеянных ошибок, величина C рассчитывается по следующей формуле: где числитель и знаменатель при n<=k являются биноминальными коэффициентами вида: Модели надежностиНапример, если утверждается, что в программе нет ошибок, а к моменту оценки надежности обнаружено 5 из 10 искусственных ошибок, а собственных ошибок не обнаружено, то вероятность того, что в программе действительно нет ошибок, будет равна: Модели надежностиЕсли в тех же исходных условиях оценка надежности производится в момент, когда обнаружено 8 из 10 искусственных ошибок, то вероятность равна 0,73. В действительности модель Миллса можно использовать для оценки N после каждой найденной ошибки. Предполагается, что в момент тестирования можно отмечать на графике текущее значение N и число найденных ошибок. Достоинствами модели являются простота, наглядность и возможность использования в момент тестирования. Недостатки: необходимость внесения искусственных ошибок, так как этот процесс плохо формализуем. Модели надежностиМодели надежности |