» » Расчет надежности программного обеспечения пример. Надежность программного обеспечения систем обработки данных. Модель Коркорэна. Предполагает наличие в программном обеспечении многих источников программных отказов, связанных с различными типами ошибок, и

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

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Введение

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

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

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

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

1 . Теоретическая часть

1.1 Основные определения

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

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

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

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

Рис. 1.1. Характеристики, определяющие надежность ПО

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

Восстанавливаемость характеризуется полнотой и длительностью восстановления функционирования программ в процессе перезапуска (рестарта).

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

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

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

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

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

Формулирование основных понятий, используемых при исследовании и применении показателей надежности;

Выявление и исследование основных факторов, определяющих характеристики надежности сложных программных комплексов;

Выбор и обоснование критериев надежности для комплексов программ различного типа и назначения;

Исследование дефектов и ошибок, динамики их изменения при отладке и сопровождении, а также влияние на показатели надежности программного обеспечения;

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

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

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

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

Контроль исправности системы программного обеспечения и полного соответствия ее состояния и функций технической документации;

Проверку работоспособности системы и возможности выполнения всех функций в заданном режиме работы в любой момент времени;

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

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

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

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

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

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

Рассмотрим существующую классификацию моделей надежности программного обеспечения (рис. 1.2) .

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

1.2.1 Непрерывные динамические модели

Пусть функционирование программного обеспечения описывается графом состояний, изображенным на рисунке 1.3. Здесь S i - состояние системы, когда произошел i-й по счету отказ, l i - интенсивность наступления следующего ((i + 1)-го по счету) отказа.

Рис. 1.3. Граф состояний функционирования программного обеспечения

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

где r<1. Значения l 0 и r можно оценить статистически по данным о моментах отказов.

Поясним процессы, происходящие в ходе отказов и восстановлений ПО. Если принять l i как случайную величину с функцией распределения l(t), то эта функция - монотонно убывающая , так как во времени интенсивность отказов уменьшается. После исправления мгновенная интенсивность отказов резко уменьшается скачком (точки 1 и 2 на рис. 1.4).

Рис. 1.4. График зависимости интенсивности отказов от времени

Рассмотрим модели, по которым можно производить расчеты показателей надежности.

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

Согласно этим допущениям вероятность безотказной работы ПО как функция времени t i равна:

где интенсивность отказов:

Здесь C D - коэффициент пропорциональности;

N - первоначальное количество ошибок.

В (1.1) отсчет времени начинается от момента последнего (i - 1)-го отказа программы.

По методу максимума правдоподобия на основании (1.1), обозначая через k номер прогнозируемого отказа, получим, что функция правдоподобия имеет вид:

Логарифмическая функция правдоподобия имеет вид:

Отсюда условия для нахождения экстремума:

Из (1.6) получим:

Подставим (1.7) в (1.5). Получим:

При известных значениях k; t 1 , t 2 , …, t k из (1.7) и (1.8) можно найти значения параметров модели C D и N, а затем интенсивность отказов, время от последнего до следующего отказа t k+1 , вероятность безотказной работы через время t k+1 после последнего отказа.

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

Пример расчета. Пусть в ходе отладки зафиксированы интервалы времени t 1 =10, t 2 =20, t 3 =25 часов между отказами программы. Необходимо определить вероятность:

а в правой части:

Из (1.2) получаем

Следовательно, среднее время до следующего отказа составляет:

Тогда, подставляя найденные значения l 4 и t 4 в (1.1), получим вероятность отсутствия четвертого отказа:

Модель переходных вероятностей Маркова . Модель позволяет получить оценки и предсказания вероятного числа ошибок, которые будут исправлены в заданное время, на основе предварительного моделирования интенсивности случающихся ошибок l, а также принятой системы исправления ошибок, работающей с интенсивностью m. Модель позволяет получить предсказания для готовности A(t) и надежности R(t) системы ПО.

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

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

Интенсивность проявления ошибок постоянна и равна l;

Интенсивность исправления ошибок постоянна и равна m;

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

Рассмотрим систему, начинающую работу в момент времени t = 0. Система работает до появления ошибки в соответствии с предопределенным критерием. Результаты эксперимента собираются в отрезки времени, за которые могут произойти отказы в работе. Тогда переменная времени случайного сбоя может быть определена как:

где - местоположение точек на дискретной временной оси эксперимента. Предположим, что случайная переменная имеет функцию распределения:

и, если она существует, то плотность функции распределения будет:

Надежность системы R(t) определяется вероятностью отсутствия сбоя в интервале :

Под готовностью системы к моменту времени t понимается вероятность того, что система находится в рабочем состоянии во время t:

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

Рис. 1.5. Модель многих состояний для оценки характеристик ПО

Ряд состояний системы {n, п - 1, п - 2, …} соответствует процессам обнаружения ошибок. По аналогии для случая устранения ошибок введем состояния системы {т, т - 1, т - 2, …}. Система находится в состоянии (п - k), если ошибка (k - 1) уже исправлена, а ошибка k еще не обнаружена. В то же время система будет находиться в состоянии (т - k) после того, как ошибка k обнаружена, но еще не исправлена. Общая схема модели с указанием вероятностей перехода между состояниями показана на рис. 1.5.

Пусть S"(t) есть случайная переменная, через которую обозначено состояние системы в момент времени t. Эксперимент будет построен так, что в некоторый момент времени предполагаем систему остановленной и наблюдаем ее состояние. Пространство возможных состояний S системы может быть представлено так:

Теперь предположим, что в моменты (любая последовательность наблюдений) последовательность случайных переменных удовлетворяет для любого положительного целого числа l следующему равенству:

где соответствуют последовательности состояний

Таким образом, любое состояние модели определяется рядом переходных вероятностей {P ij }, где P ij обозначает вероятность перехода из состояния i в состояние j и не зависит от предшествующих и последующих состояний системы, кроме состояний i и j. Вероятность перехода из состояния (п - k) к состоянию (т - k) равна при k = 0, 1, 2, … Аналогично этому вероятность перехода из состояния (т - k) к состоянию (п - k - 1) равна при k = 0, 1, 2, …

Интенсивности перехода l j и m j зависят от текущего состояния системы. Для системы ПО l j означает интенсивность возникновения (проявления), a m j - интенсивность устранения ошибок. Следовательно, полная матрица переходных вероятностей системы может быть представлена следующим образом:

Выражение для готовности системы во время t (tі0) получим на основе ее определения:

Готовность системы во время t определяется как результат простого сложения всех вероятностей состояний занятости.

Надежность системы зависит от степени ее отладки, т.е. чем выше степень отладки системы, тем больше ожидаемая надежность. Предположим, что к моменту t система только что вошла в состояние (n - k), т. е. ошибка k только что устранена. Назовем это время как t. Тогда в интервале времени (0, T k+1), где t = T k+1 может проявиться ошибка (k + 1) при принятой постоянной интенсивности проявления ошибок l k .

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

получим выражение для надежности:

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

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

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

Пример расчета. Пусть в ходе отладки зафиксированы интервалы времени t 1 =10, t 2 =20, t 3 =25 часов между отказами программы. Система находится в состоянии, когда ошибка 3 уже исправлена, а ошибка 4 еще не обнаружена. Необходимо определить вероятность:

отсутствия следующего (четвертого) отказа.

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

Величину l i определим по модели Джелински-Моранды (формула (1.2)):

Значения C D и N определим по формулам (1.7) и (1.8).

Первоначальное количество ошибок N находим методом подбора. Если N=3, то есть обнаружены все ошибки, то в левой части (1.8) имеем:

а в правой части:

Если N=4, левая и правая части соответственно равны 152 и 150. Если N=5, соответственно 210 и 205.

Следовательно, наименьшую ошибку при решении (1.8) обеспечит N=4, откуда по формуле (1.7):

Из (1.2) получаем:

Тогда, подставляя найденное значение l 4 в (1.19), получим вероятность отсутствия четвертого отказа:

1.2.2 Дискретные модели

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

МОДЕЛЬ ШУМАНА. В этой модели предполагается, что тестирование проводится в несколько этапов. Каждый этап представляет собой выполнение программы по набору тестовых данных. Выявленные в течение этапа тестирования ошибки регистрируются, но не исправляются. По завершении этапа исправляются все обнаруженные на этом этапе ошибки, корректируются тестовые наборы и проводится новый этап тестирования.

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

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

Пусть T = t 1 + … + t k - общее время тестирования; n = m 1 + … + m k - общее число обнаруженных и исправленных при тестировании ошибок; n i = m 1 + … + m i - число ошибок, исправленных к началу (i + 1)-го этапа тестирования (n 0 = 0).

В модели Шумана программное обеспечение на i-м этапе тестирования имеет функцию надежности:

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

N - n i-1 - количество ошибок, оставшихся к началу i-го этапа;

C - коэффициент пропорциональности, равный:

Для нахождения первоначального количества ошибок в программном обеспечении N используется уравнение:

При известных значениях k; t 1 , t 2 , …, t k ; m 0 , m 1 , …, m k из (1.21) и (1.22) можно найти значения параметров модели C и N. После чего можно определить следующие показатели:

1) число оставшихся ошибок в программном обеспечении:

2) функцию надежности программного обеспечения по завершении тестирования:

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

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

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

Методом подбора из уравнения (1.22) найдем, что первоначальное количество ошибок.

Найдем число оставшихся ошибок в программном обеспечении по (1.23):

По формуле (1.21) найдем значение параметра C:

Подставляя l в (1.24), получим функцию надежности программного обеспечения по завершении тестирования:

МОДЕЛЬ МУСА. В этой модели надежность программного обеспечения на этапе эксплуатации оценивается по результатам тестирования.

Пусть T - суммарное время тестирования, n - число отказов, произошедших за время тестирования.

Тогда по модели Муса средняя наработка до отказа после тестирования на этапе эксплуатации определяется по формуле:

где t 0 - средняя наработка до отказа до начала тестирования, C - коэффициент, учитывающий уплотнение тестового времени по сравнению с временем реальной эксплуатации. Например, если один час тестирования соответствует 12 ч работы в реальных условиях, то C = 12.

Неизвестный параметр t 0 можно оценить из следующего соотношения:

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

K - коэффициент проявления ошибок. Значение K определяется эмпирическим путем по однотипным программам. Обычно это значение изменяется от 1,5Ч10 -7 до 4Ч10 -7 ;

f - средняя скорость выполнения одного оператора программы, равная отношению средней скорости исполнения программного обеспечения (A) к числу команд (операторов) (B).

Надежность программного обеспечения для периода эксплуатации t определяется по формуле:

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

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

Пример расчета. Длительности этапов тестирования составляют часов, часов, часов. Число отказов на первом этапе, на втором - , на третьем - . Средняя скорость исполнения программного обеспечения операторов/час, количество операторов в ПО. Определить надежность программного обеспечения для периода эксплуатации часов.

Найдем среднюю скорость выполнения одного оператора:

Первоначальное количество ошибок в программном обеспечении N найдем по модели Шумана методом подбора из уравнения (1.22): наименьшее различие значений правой и левой частей этого уравнения достигается при. Следовательно, это и есть первоначальное количество ошибок в программном обеспечении.

Коэффициент проявления ошибок K примем равным.

Найдем значение параметра t 0 по (1.26):

Примем значение коэффициента.

Тогда средняя наработка до отказа после тестирования на этапе эксплуатации по (1.25):

Найдем надежность программного обеспечения для периода эксплуатации часов по формуле (1.27):

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

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

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

Программа тестируется в течение некоторого времени, и собирается статистика об обнаруженных ошибках.

Пусть после тестирования обнаружено n собственных ошибок программы и v искусственно внесенных ошибок. Тогда первоначальное число ошибок в программе N можно оценить по формуле Миллса :

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

Вторая часть модели связана с проверкой гипотезы об N. Допустим, мы считаем, что в программе первоначально K ошибок. Вносим искусственно в программу S ошибок и тестируем ее до тех пор, пока все искусственно внесенные ошибки не будут обнаружены. Пусть при этом обнаружено n собственных ошибок программы. Вероятность, что в программе первоначально было K ошибок, можно рассчитать по соотношению:

Формулу (1.29) можно использовать только в случае, если обнаружены все S искусственно внесенных ошибок. Если же обнаружено только v искусственно внесенных ошибок, то применяют формулу:

Число сочетаний из n элементов по m.

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

Однако есть недостатки:

1) необходимость внесения искусственных ошибок (этот процесс плохо формализуем);

2) достаточно вольное допущение величины K, которое основывается исключительно на интуиции и опыте человека, производящего оценку, то есть допускает большое влияние субъективного фактора.

Пример расчета 1. В программу внесено 50 ошибок, и в процессе тестирования обнаружено 25 собственных и 5 внесенных ошибок, то по формуле Миллса (1.28) делается предположение, что первоначально в программе их было.

Пример расчета 2. Утверждается, что в программе нет ошибок (K = 0). При внесении в программу 10 ошибок все они в процессе тестирования обнаружены, но при этом не выявлено ни одной собственной. Тогда по формуле (1.29) вероятность, что это утверждение верно, равна. Таким образом, с вероятностью 0,91 можно утверждать, что в программе нет ошибок. Но если в процессе тестирования обнаружена хоть одна собственная ошибка, то p = 0.

Пример расчета 3. Утверждается, что в программе нет ошибок. К моменту оценки надежности обнаружено 5 из 10 искусственно внесенных ошибок, и не обнаружено ни одной собственной. Тогда вероятность того, что в программе действительно нет ошибок, вычисляется по формуле (1.30) и равна:

Если при тех же исходных условиях оценка надежности производится в момент, когда обнаружены 8 из 10 искусственных ошибок, то по формуле (1.30)

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

В модели предполагается, что область, которой могут принадлежать входные данные программы, разделена на k непересекающихся областей Z i , i = 1, 2, …, k. Пусть p i - вероятность того, что для очередного выполнения программы будет выбран набор данных из области Z i . Значения p i определяются по статистике входных данных в реальных условиях работы программного обеспечения.

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

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

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

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

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

где n + - число успешных прогонов программного обеспечения;

Число обнаруженных ошибок i-го типа, устраняемых с вероятностью p i ;

d i - коэффициент, определяемый следующим образом:

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

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

Пример расчета по обобщенной модели Нельсона - Коркорэна. Общее число прогонов программного обеспечения, число прогонов, закончившихся отказом, .

Надежность определяется по формуле (1.34):

1.2.4 Эмпирические модели

Эмпирические модели основаны на анализе накопленной информации о функционировании ранее разработанных программ.

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

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

где M 10 - число модулей, потребовавших 10 и более исправлений;

M 1 - число модулей, в которых обнаружено меньше 10 ошибок.

Применяется также эмпирическая формула для оценки средней наработки программного обеспечения на отказ:

где t - средняя наработка программного обеспечения на отказ в часах;

V ОП - объем программы в операторах;

N - число ошибок в программном обеспечении, оцененное по одной из приведенных выше моделей;

a - коэффициент, лежащий в диапазоне от 100 до 1000.

Пример расчета. Число модулей, потребовавших 10 и более исправлений, равно, число модулей, в которых обнаружено меньше 10 ошибок, равно. Найдем число ошибок в ПО N по формуле IBM (1.35):

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

где N ОШ - число ошибок в программе;

K НО - коэффициент пропорциональности;

V ОП - число операторов в программе;

h 1 - число операторов в программном средстве;

h 2 - число операндов в программном средстве;

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

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

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

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

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

Отказы при приемо-сдаточных испытаниях малоинтенсивны или отсутствуют.

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

1.3 Анализ надежности программных комплексов

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

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

1.3.1 Графовая модель программы

В качестве графовой модели программы рассмотрим ориентированный граф G (V, Г), где V = {v i } - множество вершин, Г = {g ij } - множество дуг. Граф системы G(V, Г) определяется структурой программной системы. Множество V вершин графа составляет программные модули (типы модулей), а множество дуг Г отражает связь между модулями, то есть, если из i-го модуля есть переход в j-ый модуль, то в графе G имеется дуга g ij , ведущая из i-ой вершины в j-ую. Введем модельные ограничения. Предположим наличие в графовой модели программы одной истоковой вершины v 0 (вход) и одной стоковой v k (выход). Допустим также, что из каждой вершины исходит не более двух дуг, число входящих в вершину дуг не ограничивается. Будем считать, что графовая модель программы не содержит циклов, а отображаемая ею программа относится к категории несамоизменяющихся.

При моделировании вычислительного процесса на графовой модели программы и исследовании свойств программного обеспечения предусматривается сообщение каждому элементу модели некоторого веса. Допустим, что каждая вершина v i характеризуется аддитивным элементарным показателем d i , связанным с исследуемым свойством программы. Введенные показатели образуют на графе множество D = {d i }. Модель G(V, Г, D) может использоваться для статистического исследования различных маршрутов графовой модели программы. Выбор пути прогона на графе обусловливается совокупностью реализаций передач управления в вершинах, которые связаны со случайным процессом поступления на вход программы различных векторов входных данных, что приводит к случайному характеру выбора маршрутов в графе. Таким образом, исследуемое программное обеспечение можно представить сложной системой со случайной структурой, динамику функционирования которой целесообразно описать статистически с помощью вероятностей перехода от i-ой к j-ой вершине графовой модели программы.

Учитывая это, припишем дуге g ij вероятность ее активизации p(i, j)ОP, то есть вероятность ухода по ней из вершины v i в вершину v j . Предположим, что для двух дуг и справедливо равенство:

Таким образом, построенная графовая модель программы является ациклическим ориентированным нагруженным графом G(V, Г, D, P).

На рис. 1.6 приведен пример графовой модели программы. На нем вершина 0 - это истоковая вершина, а вершина 4 - стоковая.

1.3.2 Модель Нельсона определения надежности для графовой модели программы

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

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

С целью использования модели G(V, Г, D, P) припишем указанным аддитивным характеристикам смысл логарифмической меры вероятностей r i однократного безотказного выполнения последовательности операторов, ассоциируемых с вершиной v i:

Тогда вероятность безотказного выполнения маршрута при m-м прогоне программного обеспечения определяется равенством:

а ее логарифмическая мера:

Используя приближение:

где Q m - вероятность отказа при выполнении маршрута (это условие выполняется по определению), и допущении, имеем:

Поскольку маршрут w m реализуется с вероятностью p(m), полная вероятность отказа при выполнении m-го прогона определяется выражением:

Оценка среднего значения вероятности отказа Q m задается рекуррентными соотношениями :

где p(i) - вероятность активизации i-й вершины графовой модели программы.

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

1.3.3 Стохастический метод вычисления надежности

Рассмотрим один из методов числовой оценки надежности сложных программных комплексов .

Пусть дан программный комплекс, состоящий из M отдельных модулей. По структуре программного комплекса строится стохастический граф, содержащий вершины, соответствующих модулям. Вершины 0 и - фиктивные. Вершина 0 - исток, а вершина - сток графа. Каждый программный модуль вызывается на решение с заданной вероятностью, исходя из цели функционирования или значений исходных данных. Предполагается, что надежность всех программных модулей известна. Целью является нахождение вероятности безошибочного решения задачи программного комплекса.

Пусть P ij - вероятность перехода от i-го программного модуля к j-му, а P i (t i) - вероятность безошибочного функционирования i-го программного модуля в течение времени t i .

Так как вершины 0 и (M + 1) - фиктивные, то предполагаем, что время нахождения в них равно нулю, а вероятности безошибочной работы в них - единице.

На рис. 1.7 приведен пример стохастического графа программного комплекса. На нем: вершина 0 - истоковая вершина, вершина 4 - стоковая, t 0 = t 5 = 0, P 0 (t 0) = P 5 (t 5) = 1.

Рассмотрим матрицу G = G(t), t = t 0 , t 1 , …, t M + 1 , элементами которой являются произведения P ij ЧP i (t i); i, j = 0, …, M + 1:

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

Пусть n - максимально возможное число шагов в пути от вершины 0 к вершине (M + 1).

Чтобы найти вероятности безошибочной работы за два шага, нужно просуммировать с соответствующими вероятностями произведения вероятностей по всем путям, содержащим две вершины (одна из них нулевая). Это достигается возведением матрицы G в квадрат. Для получения вероятности безошибочного функционирования за три шага G возводим в куб и так далее в зависимости от n.

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

Построим матрицу вида:

T = I + G(t) + G 2 (t) + … + G n (t).

Если в графе имеются циклы, то матрица T будет иметь вид:

T = I + G(t) + G 2 (t) + … = I (I - G(t))- 1 , (1.42)

где I - единичная матрица.

Элемент матрицы T с номером (0, M + 1) представляет собой выражение для вероятности безошибочной работы всего программного комплекса с учетом всех возможных последовательностей вызовов отдельных программных модулей.

Если в графе имеются циклы, и матрица T соответствует (1.42), то, чтобы найти значение элемента с номером (0, M + 1), в соответствии с правилами вычисления значений элементов обратной матрицы, выражение для вероятности безошибочной работы программного комплекса можно представить в виде:

Y(t) = Q(t) / R(t), (1.43)

где Q(t) - алгебраическое дополнение элемента с номером (M + 1, 0) матрицы; R(t) - главный определитель матрицы (I - G(t)).

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

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

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

При оценке вероятности безотказной работы i-го программного модуля воспользуемся формулой (1.27) из модели Муса, в которую подставлено выражение для средней наработки до отказа после тестирования на этапе эксплуатации (1.25) (см. п. 1.2.2):

где t i - время работы i-го модуля;

Средняя наработка до отказа до начала тестирования для i-го модуля;

C - коэффициент, учитывающий уплотнение тестового времени по сравнению с временем реальной эксплуатации;

T i - время тестирования i-го модуля;

n i - число отказов, произошедших за время тестирования i-го модуля.

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

Воспользуемся формулой вероятности безотказной работы i-го программного модуля из модели Муса:

Для данного графа количество модулей M = 3 (модули 0 и 4 - фиктивные).

Построим матрицу этого графа по (1.41):

Постоим матрицу T, которая, так как граф содержит циклы, будет иметь вид (1.42):

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

Запишем матрицу:

Значение элемента матрицы T с номером (0, 4) найдем по формуле (1.43), вычислив алгебраическое дополнение элемента (4,0) матрицы, равное, и главный определитель матрицы, равный.

Получим, что значение элемента матрицы T с номером (0, 4), а, следовательно, и вероятность безошибочной работы всего программного комплекса равна.

1.3.4 Особенности объектно-ориентированного ПО

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

...

Подобные документы

    Постановка проблемы надежности программного обеспечения и причины ее возникновения. Характеристики надежности аппаратуры. Компьютерная программа как объект исследования, ее надежность и правильность. Модель последовательности испытаний Бернулли.

    реферат , добавлен 21.12.2010

    Надежность как характеристика качества программного обеспечения (ПО). Методика расчета характеристик надежности ПО (таких как, время наработки до отказа, коэффициент готовности, вероятность отказа), особенности прогнозирования их изменений во времени.

    дипломная работа , добавлен 01.06.2010

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

    презентация , добавлен 30.04.2014

    Действия, которые выполняются при проектировании АИС. Кластерные технологии, их виды. Методы расчета надежности на разных этапах проектирования информационных систем. Расчет надежности с резервированием. Испытания программного обеспечения на надежность.

    курсовая работа , добавлен 02.07.2013

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

    курс лекций , добавлен 27.05.2008

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

    лекция , добавлен 22.03.2014

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

    презентация , добавлен 16.10.2013

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

    дипломная работа , добавлен 18.04.2014

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

    презентация , добавлен 22.03.2014

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

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

Наиболее распространенными среди зарубежных ПК являются: RELEX (Relex software Corporation, США); A.L.D.Group (Израиль); Risk Spectrum (Relcon AB, Швеция); ISOGRAPH (Великобритания).

Среди отечественных ПК, которые применяются на ряде предприятий: ПК АСОНИКА-К (МИЭМ-ASKsoft); ПК АСМ (ПК для автоматизированного структурно-логического моделирования и расчета надежности и безопасности систем, ОАО «СПИК СЗМА»); ПК «Универсал» (для расчетов надежности и функциональной безопасности технических устройств и систем, ФГУП «ВНИИ УП МПС РФ»); ИМК КОК (инструментально-моделирующий комплекс для оценки качества функционирования информационных систем, ФГУП «3 ЦНИИ МО РФ») и др. Для расчета надежности РЭА и ЭРИ также широко используют автоматизированную справочно-информационную систему (АСРН) (ФГУП «22 ЦНИИИ МО РФ»), автоматизированную систему расчета надежности ЭРИ и РЭА (АСРН-2000, ОАО «РНИИ “ЭЛЕКТРОНСТАНДАРТ”»), АСРН-1 (для ЭРИ и РЭА народнохозяйственного назначения, ОАО «РНИИ “ЭЛЕКТРОНСТАНДАРТ”»).

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

ПК Relex и Risk Spectrum

ПК Relex и Risk Spectrum позволяют проводить логико-вероятностный анализ надежности и безопасности технических систем, например, расчет надежности современных автоматизированных систем управления технологическими процессами (АСУТП), оптимизацию техногенного риска и определение оптимальных параметров системы технического обслуживания потенциально опасных объектов. Основное применение ПК Risk Spectrum получил в вероятностном анализе безопасности объектов атомной энергетики на стадии проектирования. Комплекс Spectrum используется более чем на 50% атомных станций мира, включен в перечень программных средств, аттестованных Советом по аттестации программных средств Госатомнадзора России в 2003 г. ПК Relex и Risk Spectrum могут быть использованы для расчета надежности не только управляющих или технологических систем, но и изделий приборостроения, вычислительной техники, на транспорте, в оборонной технике.

В основе моделирования и расчета показателей надежности и безопасности технических систем, широко применяемых в Европе и США, лежат логико-вероятностные методы, использующие в качестве средства построения графических моделей безопасности (надежности) деревья событий (ДС) и деревья отказов (ДО) рис. 1 и 2.

Рис. 1. а) Модель надежности (безопасности), представленная с помощью дерева отказов и событий; б) дерево отказов в ПК Relex

Рис. 2. а) дерево событий в редакторе ДС; б) дерево отказов в редакторе ДО ПК Risk Spectrum

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

Если можно утверждать, что система работоспособна в случае работоспособности ее элементов A и B, то можно сделать вывод о том, что работоспособность системы (событие С) и работоспособность элементов A и B (событие A и событие B) связаны между собой логическим уравнением работоспособности: C = AB. Здесь обозначение используется для отображения логической операции И. Логическое уравнение работоспособности для данного случая может быть представлено схемой последовательного соединения элементов A и B.

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

Таблица. Примерный список вершин и событий в ПК Relex

В модуле ДО ПК Relex используются логико-динамические операторы (вершины), учитывающие зависимость событий, временные соотношения, приоритеты (рис. 1б). Он позволяет осуществлять расчет следующих показателей: вероятность отказа; неготовность; параметр потока отказов; среднее число отказов. Значения показателей вычисляются как для вершинного события, так и для каждого промежуточного. Для каждого выделенного события можно просматривать и анализировать наборы соответствующих минимальных сечений.

В ПК Risk Spectrum ДС представляется в виде таблицы, содержащей строку заголовков, поле, в котором помещен разомкнутый бинарный граф (дерево событий), несколько столбцов с характеристиками конечных состояний моделируемого объекта, реализующихся в процессе осуществления аварийных последовательностей (рис. 2а). В заголовке 1-го столбца таблицы указывается обозначение исходных событий. В последующих заголовках столбцов слева направо размещаются названия и условные обозначения промежуточных событий, соответствующих успешному или неуспешному выполнению функций безопасности, работоспособным или отказовым состояниям систем безопасности или отдельных компонентов (оборудования и технических средств), правильным или ошибочным действиям персонала. В столбцах, характеризующих конечные состояния (КС), указываются их номера, условные обозначения, типы (например, КС с повреждением активной зоны), вероятности реализации, логические формулы, соответствующие данным аварийным последовательностям (АП).

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

С ПК Relex (Relex Software Continental Europe GmbH, www.relex.com) работают многие известные зарубежные фирмы, такие как LG, Boeng, Motorolla, Dell, Cessna, Siemens, Raytheon, HP, Honda, Samsung, CiscoSystems, Nokia, EADS, 3M, NASA, Intel, GM, Kodak, AT & T, Philips, Pirelli, Quallcomm, Seagete, Emerson.

В состав ПК Relex reliability studio 2007 входят различные аналитические модули для решения широкого спектра задач: прогнозирования безотказности (Reliability Prediction), ремонтопригодности (Maintainability Prediction); анализа видов, последствий и критичности отказов (FMEA/FMECA); марковского анализа (Markov Analysis), статистического анализа (Weibull Analysis), оценки стоимости срока службы оборудования (Life Cycle Cost); а также блок-схемы надежности (Reliability Block Diagram); деревья отказов/событий (Fault Tree/Event Tree); система оповещения об отказах, анализе и корректирующих действиях, FRACAS-система (Failure Reporting Analysis and Corrective Action System); система оценки человеческого фактора и анализа рисков (Human Factors, Risk Analysis).

Модуль прогнозирования безотказности содержит модели для расчета показателей надежности элементов. В него включена обширная база данных, содержащая классификационные признаки элементов и характеристики надежности. Расчеты проводятся в соответствии со стандартами: MIL-HDBK-217, Telcordia (Bellcore), TR-332, Prism, NSWC-98/LE1, CNET93, HRD5, GJB299.

Модуль анализа ремонтопригодности реализует положения стандарта по исследованию ремонтопригодности систем - MIL-HDBK-472. Решаются задачи прогнозирования профилактики технического обслуживания.

Модуль анализа видов, последствий и критичности отказов отвечает стандартам MIL-STD-1629, SAE ARP 5580 и др. Производится ранжирование опасных отказов и их оценка по приоритетам рисков.

Модуль блок-схемы надежности (RBD, Reliability Block Diagram) используется для анализа сложных резервированных систем. Содержит как аналитические методы, так и методы моделирования Монте-Карло.

Модуль деревья отказов/деревья событий позволяет реализовывать процедуры для дедуктивного и индуктивного анализа развития отказов, событий в системе. Применяется для анализа надежности и безопасности. Содержит широкий набор логико-функциональных вершин.

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

В модуле ПК Relex Markov реализованы марковские процессы с дискретным множеством состояний и непрерывным временем, учитывающие следующие особенности функционирования и резервирования систем: несовместные виды отказов элементов; последовательность возникновения отказов; изменение интенсивностей отказов элементов в зависимости от уже происшедших событий (в частности, степень нагруженности резерва); количество бригад по восстановлению (ограниченное/неограниченное); очередность восстановления; ограничения на ЗИП; различную эффективность функционирования в различных состояниях системы и доходы (потери) за переходы в состояния. Вычисляемые показатели: вероятность каждого из состояний; вероятность безотказной работы (отказа) на заданном интервале времени и др.

Модуль статистического анализа «Weibull» предназначен для обработки результатов испытаний, эксплуатации. Для описания катастрофических отказов на ваннообразной кривой интенсивности отказов широко используют нормальное, логнормальное распределения, распределение Вейбулла и др. Например, распределение Вейбулла, являющееся распределением минимальных величин, наиболее часто используется при прогнозировании вероятности безотказной работы и среднего времени наработки на отказ при заданном времени эксплуатации проектируемой сложной технической системы. Логнормальное и вейбулловское распределения одинаково хорошо описывают отказы, характерные для периода старения.

Модуль статистического анализа «Weibull» использует различные виды распределений, включая нормальное, Вейбулла, логнормальное, равномерное, экспоненциальное, Гумбеля, Рэлея, биномиальное и др. Представление и анализ данных для выбранных классов параметрических распределений проводится с использованием метода «вероятностной бумаги». На ней анализируемое распределение представляется прямой линией, что обеспечивает наглядность и позволяет естественным образом применять все методы регрессионного анализа, в частности, проверку адекватности модели и значимости коэффициентов регрессии (фишеровский анализ). Для оценок параметров распределений предлагается большой набор методов, например методы Хазена (Hazen), Бенарда (Benard) и их модификации, биномиальное оценивание, метод средних величин, метод максимального правдоподобия и его модификация и др.

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

ПК АСМ

Наиболее известным из отечественных ПК является программный комплекс автоматизированного структурно-логического моделирования (ПК АСМ). Теоретической основой является общий логико-вероятностный метод системного анализа, реализующий все возможности основного аппарата моделирования алгебры логики в базе операций «И», «ИЛИ», «НЕ». Форма представления исходной структуры системы - схема функциональной целостности, позволяющая отображать практически все известные виды структурных моделей систем. Комплекс автоматически формирует расчетные аналитические модели надежности и безопасности систем и вычисляет вероятность безотказной работы, среднюю наработку до отказа, коэффициент готовности, среднюю наработку на отказ, среднее время восстановления, вероятность отказа восстанавливаемой системы, вероятность готовности смешанной системы, а также значимость и вклад элементов в различные показатели надежности системы в целом. ПК АСМ позволяет также автоматически определять кратчайшие пути успешного функционирования, минимальные сечения отказов и их комбинации.

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

ПК A.L.D. Group

Фирма A.L.D. Group (Израиль-США, http://www.aldservice.com/) объединяет две компании, специализирующиеся в области логистики (logistics information system) и оценки надежности: SoHaR и FavoWeb (http://www.favoweb.com/).

Программный продукт FavoWeb - это работающая в Интернете динамическая FRACAS-система (Failure Reporting Analysis and Corrective Action System - Система оповещения об отказах, анализе и корректирующих действиях). Многие зарубежные компании, например компания Lockheed Martin, широко используют систему FRACAS.

Программный продукт FavoWeb основан на современных возможностях интернет-технологий и реализует полный замкнутый цикл методологии FRACAS, который применим к любому продукту, услуге, процессу. Может быть использован в любой фазе жизненного цикла: разработке, макетировании, производстве, эксплуатации, техническом обслуживании, контроле, испытании; в любой отрасли: авиации, обороне, связи, электронике, фармацевтике, автомобилестроении, бытовой технике.

Система FRACAS позволяет создавать базы данных, переводя разнородные данные в структурированную информацию о качестве. Имеет мощный механизм корректирующих действий: поддержка работы групп анализа отказов/дефектов/материалов, анализ глубинных причин отказов, устранение проблем. Содержит модуль Workflow для автоматизации извещения об отказах и серийных номерах.

Программа предлагает широкий набор функций, возможностей оценки и улучшения надежности оборудования благодаря тесной интеграции с системой анализа RAM Commander (рис. 3). Кроме того, FavoWeb включает специальные возможности по внесению и учету изменений, логистике и отслеживанию серийных номеров изделий (CALS-технологии).

Рис. 3. Окно системы анализа надежности RAM Commander

Под термином CALS-технологии (Continuous Acquisition and Lifecycle Support) понимается совокупность принципов и технологий информационной поддержки жизненного цикла изделия на всех его стадиях. Русскоязычный аналог CALS - информационная поддержка жизненного цикла изделий (ИПИ). В последнее время за рубежом наряду с CALS используется также термин Product Lifecycle Management (PLM). Важным аспектом CALS-технологий является информационная поддержка непосредственно самого процесса расчета оценки надежности технической системы. RAM Commander позволяет вычислять среднюю наработку на отказ/критический отказ (MTBF/ MTBCF), среднее время на ремонт (MTTR), среднее время между устранениями отказов (MTBMA) и др.

Базовая конфигурация FavoWeb позволяет создавать отчеты (распределение дефектов/отказов и перечень отказов/дефектов по заданным пользователем параметрам); проводить корректирующие действия; строить дерево продукта; работать с различными библиотеками/справочниками; имеет модуль администратора.

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

На рис. 3 показан пример расчета надежности РЭА. Объект состоит из приемопередающего компонента (Communic), компонента управления (Control) и монтажного шкафа (Pedestal). Коммутирующая часть приемопередающего компонента - радиоэлектронные и механические компоненты: ИС, резисторы, конденсаторы, фотоприемники, переключатель. Элементы проектируемой системы, имеющие наивысшую интенсивность отказов, помечены красным цветом, например блок питания (PS), имеющий эксплуатационную интенсивность отказов 8350 ФИТ и интенсивность отказов в режиме ожидания 700 ФИТ. Второй по величине вклад вносит монтажный шкаф (Pedestal), состоящий из антенны, механического мотора и опоры (выделены желтым цветом).

На рис. 4 показано редактирование надежностных характеристик КМОП ИС типа 74HC04 в различных режимах эксплуатации проектируемой РЭА: в операционном (рабочем) режиме, в режиме хранения (ожидания). Предполагается, что ИС будет использоваться в РЭА предназначенной для наземных стационарных условий эксплуатации (условное обозначение режима - GF, температура эксплуатации - 49,3 °C, градиент температуры - Delta Temp 4,3 °C). При заданном режиме эксплуатации, для ИС типа 74HC04, прогнозируемая интенсивность отказов по справочнику предсказания надежности Telecordia Issue 1 составит FRp ≈ 32 ФИТ (1 ФИТ = 10 –4 %/1000 ч = 10 –9 1/ч). Используя справочник Telcordia, можно также редактировать конструктивно-технологические характеристики ИС. Например, из справочника извлекаем информацию, что ИС типа 74НС04 представляет популярное семейство логических быстродействующих КМОП схем (отечественный аналог - серия КР1564). Число вентилей - 6, корпус - герметичный. Интенсивность отказов ИС 74HC04 может быть предсказана и с использованием других зарубежных регламентирующих документов (справочников): MIL-HDBK-217f, TR332 - Bellcore Issue 6, RDF 95 - French Telecom, UTE C 80810 (CNET 2000), HRD - British Telecom, GJB299 - Chinese Standard, IRPH93 - Italtel, ALCATEL, RADC 85-91, NPRD-95, NSWC-98.На рис. 5а показана диаграмма Парето, позволяющая определить долю интенсивности отказов составных частей проектируемой РЭА в общей интенсивности отказов. Также показаны зависимость интенсивности отказов РЭА от температуры (рис. 5б) и среднее время наработки на отказ (рис. 5в).

Возможности RBD-модуля расчета структурной надежности RAM Commander во многом схожи с RBD-модулем ПК Relex. Однако возможности последнего значительно шире, так как он позволяет учитывать следующие факторы: вид резервирования (постоянное, замещение, скользящее); вероятность и время успешного подключения резерва; нагруженность резерва; механизм проявления отказа; различные стратегии восстановления; наличие ЗИП, профилактического обслуживания и технических осмотров.

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

Используя RBD-модуль RAM Commander, можно построить различные варианты (функционально-надежностные схемы) с последовательным, параллельным и последовательно-параллельным (K out of N) соединением компонентов проектируемой системы, а также провести анализ надежности варианта блок-схемы с использованием статистического анализа по методу Монте-Карло. Модуль позволяет задавать индивидуально для каждого блока: распределение интенсивностей отказов - экспоненциальное, нормальное, логнормальное, Вейбулла, Эрланга и др.; среднее время наработки между отказами (MTBF, ч); нагруженность рабочего цикла в %; указывать степень ремонтопригодности (полностью или частично) и задавать вероятностные распределения и их параметры для ремонтируемых блоков (например, для экспоненциального распределения указывается время нахождения блока в ремонте). На рис. 6 показаны оценки вероятности безотказной работы для двух функционально-надежностных схем, построенные в предположении, что отказы компонентов проектируемого объекта в течение 100 тыс. ч эксплуатации подчиняются экспоненциальному распределению, при этом все отказавшие компоненты полностью ремонтопригодны.

На отечественном рынке представлена успешно развивающаяся подсистема АСОНИКА-К (по мнению разработчиков АСОНИКА-К перерастет в программный комплекс, поэтому в дальнейшем будем называть ее ПК АСОНИКА-К) - программное средство решения задач анализа и обеспечения надежности в рамках автоматизированного проектирования РЭА (рис. 7). По своим возможностям подсистема АСОНИКА-К не уступает RBD-модулям зарубежных ПК A.L.D. Group (RAM Commander), Relex, Isograph и др. Ее использование является более предпочтительным, так как АСОНИКА-К позволяет вести расчет надежности РЭА, производимой в России, на основе данных, приведенных в отечественных справочниках «Надежность электрорадиоизделий», «Надежность электрорадиоизделий зарубежных аналогов». Отвечает требованиям комплекса военных стандартов «Мороз-6» для РЭА ответственного применения и стандарту США MIL-HDBK-217 и стандарту КНР GJB/z 299B.

Рис. 7. ПК АСОНИКА-К. Система расчета надежности СЧ: а) пример расчета надежности РЭА; б) пример графического анализа зависимости интенсивности отказов от температуры окружающей среды

Использование ПК АСОНИКА-К позволяет реализовать современные методы проектирования РЭА, основанные на CALS-технологиях. АСОНИКА-К представляет собой программное средство, созданное в технологии «клиент-сервер». База данных (БД) серверной части ПК содержит непрерывно пополняемую информацию о надежности как отечественных, так и зарубежных изделий электронной техники, построенную на уникальных принципах, которые существенно облегчают задачу ее администрирования, в том числе: редактирование данных о надежности ЭРИ; редактирование математических моделей ЭРИ; добавление новых классов ЭРИ. Ниже приведен состав программного комплекса АСОНИКА-К:


БД клиентской части ПК содержит информацию о проектируемой РЭА. Такая организация клиентской части позволяет проводить расчеты РЭА параллельно с нескольких рабочих станций. Клиентская часть программы имеет графический постпроцессор и интерфейсы с системами моделирования физических процессов и конструкторского проектирования, в том числе АСОНИКА-Т, P-CAD 2001, АСОНИКА-М и др . Математическое ядро ПК содержит в качестве модели надежности экспоненциальное и DN-распределения и может быть адаптировано к любой другой модели надежности. Оно позволяет рассчитывать РЭА, содержащие до четырех иерархических уровней разукрупнения и имеющие различные типы резервирования. Результаты расчетов могут быть представлены как в текстовом, так и в графическом виде.

ПК АСОНИКА-К позволяет проводить следующие виды анализа расчета надежности (СРН, аналог RBD-модуля RAM Commander, Relex RBD, Isograph RBD): анализ результатов расчетов надежности РЭА, СРН которых представляет собой произвольное соединение составных частей (древовидное, иерархическое и т. д.) и анализ результатов расчета составных частей, с последовательным соединением.

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

Использование ПК АСОНИКА-К позволяет повышать надежность РЭА путем резервирования ее составных частей (рис. 8). На рис. 8 показаны группы К01-К08, выделенные из объекта, значения вероятности безотказной работы, коэффициент готовности и коэффициент оперативной готовности всего объекта в целом.

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

ПК позволяет проводить расчет надежности с использованием различных видов резервирования составных частей: скользящее горячее резервирование, горячее резервирование и без резервирования, а также обеспечивает способы контроля их работоспособности (непрерывный/периодический). На рис. 10 приведены фрагменты файлов отчета ПК АСОНИКА-К, а именно: расчет надежности составных частей (рис. 10а), расчет надежности сложного изделия (рис. 10б), которые формируется в формате html.

Перспективой развития ПК является разработка еще двух модулей: системы учета влияния на характеристики надежности внешних факторов (рис. 11) и информационно-справочной системы по характеристикам надежности современной элементной компонентной базы (ЭКБ) (рис. 12).

Рис. 11. ПК АСОНИКА-К. Система анализа и учета влияния на надежность внешних факторов

Рис. 12. ПК АСОНИКА-К. Информационно-справочная система по характеристикам надежности современной ЭКБ

Резюме

ПК Relex, Risk Spectrum и АСМ реализуют класс моделей оценки показателей надежности технических систем - логико-вероятностного моделирования. Его можно назвать классом статистических моделей, так как они позволяют вычислять показатели надежности, безопасности и эффективности систем в произвольный момент времени, в зависимости от возможных наборов работоспособных и неработоспособных состояний элементов системы.

Отдельные модули ПК A.L.D. Group (RAM Commander), Relex, Isograph возможно использовать для автоматизированного расчета надежности отечественной РЭА только лишь на базе импортных ЭРИ (или их отечественных аналогов), оценка надежности которых ведется по различным зарубежным справочникам. Использование зарубежных ПК требует от пользователей высокой подготовки в области математической статистики и ее приложения к задачам теории надежности.

ПК АСОНИКА-К не уступает по возможностям зарубежным ПК и может быть рекомендован для проведения расчетов надежности отечественной РЭА на базе как импортных, так и отечественных ЭРИ. Главное преимущество - возможность вести расчеты надежности, используя отечественные справочники «Надежность электрорадиоизделий» и отвечать требованиям комплекса военных стандартов «Мороз-6» для РЭА ответственного применения. Реализация современной концепции CALS-технологий обеспечивает непрерывную информационную поддержку, связанную с эксплуатационными отказами отечественных ЭРИ.

Литература

  1. http://www.axoft.ru
  2. ChipNews. Новости EDA Expert. 2002. № 10.
  3. Сайт компании ЭлекТрейд-М. www.eltm.ru
  4. http://www.favoweb.com/
  5. http://www.riskspectrum.com
  6. http://www.isograph.com
  7. EDA Expert_6_52_55.pdf. Жаднов В., Жаднов И., Замараев С. и др. Новые возможности программного комплекса АСОНИКА-К
  8. ПК АСМ. Методы оценки надежности, безопасности и риска. http://www.szma.ru
  9. Управление качеством при проектировании теплонагруженных радиоэлектронных средств: Учебное пособие / Жаднов В. В., Сарафонов А. В. М.: «Солон-пресс», 2004.

Введение

Описание предметной области

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

2 Модель Миллса

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

4 Модель Липова

5 Постановка задачи

Технология разработки приложения

1 Алгоритм решения

2. Макет приложения

2.1 Макет приложения. Модель Шумана (tabPage1)

2.2 Макет приложения. Модель Джелинского-Моранды(tabPage3)

2.3 Макет приложения. Модель Миллса(tabPage5)

2.4 Макет приложения. Модель Липова(tabPage4)

3 Описание программы

3.5 Сохранение результатов

Руководство пользователя

Заключение

Реферат

Программа для расчета надежности программного обеспечения

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

Цель работы: Проектирование и разработка программы для определения надежности тестируемого ПО различными моделями с использование языка C# и VisualStudio 2013.

Объект исследования: модели надежности программного обеспечения

Предмет исследования: Программа на языке C#

Введение

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

Что же такое "надежность ПО?" Ответ очень прост - это свойство системы выполнять заданные функции, сохраняя во времени значения установленных эксплуатационных показателей в заданных пределах, соответствующих заданным режимам и условиям исполнения.

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

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

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

) Провести предметный анализ в области

) Разработать необходимую программу

) Выполнить программную реализацию

) Провести тестирование приложения

) Определить эффективность разработанной программы

) Записать и проанализировать результаты

Объектом исследования является метод расчета стоимости разработки ПО.

Предметом исследования является программа на платформе VisualStudio на языке C#.

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

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

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

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

1. Описание предметной области

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

Модель Шумана строится на основе нескольких критериев:

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

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

¾ошибки изначально различимы, по суммарному числу исправленных ошибок можно судить об оставшихся;

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

Предполагается, что до начала тестирования (т.е. в момент t=0) имеется M ошибок. В течение времени тестирования τ обнаруживается ε1(t) ошибок в расчете на одну команду в машинном языке.

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

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

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

Z (t) = C * ε2 (τ),

где С - некоторая постоянная, t - время работы программы без отказов.

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

Нам необходимо найти начальное значение ошибок M и коэффициент пропорциональности С. Эти неизвестные оцениваются путем пропуска функционального теста в двух точках переменной оси отладки ta и tв, выбранных так, что ε1(ta)<ε1(td).

В процессе тестирования собирается информация о времени и количестве ошибок на каждом прогоне, т.е. общее время тестирования τ складывается из времени каждого прогона:

τ = τ1 + τ2 + τ3 + … + τn.

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

Тогда

Имея данные для двух различных моментов тестирования ta и tв, можно сопоставить уравнения (3) при τa и τb:

Из соотношений (6) и (7) найдем неизвестный параметр С и М:

Пример 1 .

Программа содержит 2 000 командных строк, из них, до начала эксплуатации (после периода отладки), 15 командных строк содержат ошибки. После 20 дней работы обнаружена 1 ошибка. Найти среднее время безошибочной работы программы и интенсивность отказов программы при коэффициенте пропорциональности, равном 0,7.

I=2000=15=20=1=0,7

E1(t)=0,00052(t)=0,007(t)=0,906649ср=204,0816

λ=0,0049 - интенсивность отказов

Пример 2.

На условиях примера 1 определить вероятность безошибочной работы программы в течение 90 суток.

I= 2000= 15= 90= 1= 0,7(t)= 0,643393

Пример 3 .

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

I= 20001= 60 суток2= 100 суток1= 2 ошибок2= 3 ошибок0= 30,333333

λ1= 0,033333

λ2= 0,03= 6,6666671(t1)= 0,0012(t2)= 0,0015= 12

Л21= 0,9

1.2 Модель Миллса

алгоритм тестирование шуман миллс

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

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

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

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

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

Функция плотности распределения времени обнаружения i-й ошибки, отсчитываемого от момента выявления (i - 1)-й ошибки, имеет вид

Где - интенсивность отказов, которая пропорциональна числу еще не выявленных ошибок в программе:

Где N - число ошибок, первоначально присутствующих в программе; С - коэффициент пропорциональности.

Наиболее вероятные значения величин N и С определяются на основе данных, полученных при тестировании. Для этого фиксируют время выполнения программы до очередного отказа t1,t2,t3,…,tk. Значения N и С можно получить, решив систему уравнений

Чтобы получить числовые значения λ, нужно подставить вместо N и С их возможные значения N и C . Рассчитав К значений по формуле (5) и подставив их в выражение (4), можно определить вероятность безотказной работы на различных временных интервалах.

1.4 Модель Липова

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

Где m - количество используемых тестов, q - вероятность обнаружения ошибки в каждом из m тестов, рассчитанная по формуле

S - общее количество искусственно внесенных ошибок; N - количество собственных ошибок, имеющихся в ПО до начала тестирования.

.5 Постановка задачи

Название приложения: Программа расчета надежности программного обеспечения.

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

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

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

Для реализации данной программы мы используем язык программирования C#, на платформе Visual Studio.

Системные требования к ПК:

) Операционная система Windows 7 или выше.

) Свободное место на жестком диске: 5МБ и более.

) Наличие Net Framework 4.0 или выше.

) Оперативная память: 128МБ и выше.

) Клавиатура и мышь.

2. Технология разработки приложения

.1 Алгоритм решения

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

В начале выполнения программы производится проверка полноты и корректности введенных данных. Если пользовательские данные не прошли проверку - выводится соответствующее уведомление.

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

После этого результаты выводятся в специально отведенные окна, а выполнение программы прекращается.


.2.1 Макет приложения. Модель Шумана (tabPage1)

menuStrip1 - выводит список меню содержащий пункты "Сохранить результаты" и "Выход"

tabPage1 - вкладка элемента tabControl1, содержащая в себе элементы: label49 - 54, label63 - 67, label 61, label59, label48, label62, label58, textBox14 - 19, groupBox4

label52 - принимает текстовое значение "Командных строк в программе"

label51 - принимает текстовое значение "Строк содержащих ошибку"

label50 - принимает текстовое значение "Дней работы"

label49 - принимает текстовое значение "Ошибок за время работы"

label58 - принимает текстовое значение "Исходные данные"

label54 - принимает текстовое значение "Конечный результат"

label61 - принимает сокращенное значение "КСП"

label60 - принимает сокращенное значение "ССО"

label59 - принимает сокращенное значение "ДР"

label48 - принимает сокращенное значение "ОВР"

label62 - принимает сокращенное значение "КП"

textBox17 - получает значение введенных пользовательских данных в графу "Командных строк в программе"

textBox15 - получает значение введенных пользовательских данных в графу "Строк содержащих ошибок"

textBox16 - получает значение введенных пользовательских данных в графу "Дней работы"

textBox14 - получает значение введенных пользовательских данных в графу "Ошибок за время работы"

textBox18 - получает значение введенных пользовательских данных в графу "Коэффициент пропорциональности", по умолчанию установлено значение "1".

textBox19 - служит для вывода результатов вычислений, произведенных по формуле Шумана.

button5 - принимает текстовое значение "Очистить", а также отчищает все поля в данном блоке

2.2.2 Макет приложения. Модель Джелинского-Моранды(tabPage3)

tabPage3 - содержит все группы объектов, таких как label41-42, label45-46, label73-69, label19-14, textBox4, button3, textBox13-10, groupBox3.

label41 - принимает текстовое значение "Число ошибок, первоначально находящихся в программе.

label42 - принимает текстовое значение "Коэффициент пропорциональности"

label45 - принимает текстовое значение "Количество ошибок спустя время"

label46 - принимает текстовое значение "время обнаружения i ошибки"

label73 - принимает текстовое значение "Результат"

label69 - принимает текстовое значение "Исходные данные"

label72 - принимает сокращенное значение "ЧОПНВП"

label71 - принимает сокращенное значение "КП"

label70 - принимает сокращенное значение "КОСВ"

label15 - принимает сокращенное значение "ВОО"

label14 - принимает текстовое значение "Конечный результат"

Элементы label19 - label16 принимают одинаковые начальные текстовые значения "null"

textBox10 - получает значение введенных пользовательских данных в графу "Число ошибок, первоначально находящихся в программе"

textBox12 - получает значение введенных пользовательских данных в графу "Коэффициент пропорциональности"

textBox11 - получает значение введенных пользовательских данных в графу "Количество ошибок спустя время"

textBox13 - получает значение введенных пользовательских данных в графу "Время обнаружения ошибки"

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

button3 - принимает текстовое значение "Очистить", а также отчищает все поля в данном блоке

2.2.3 Макет приложения. Модель Миллса(tabPage5)

tabPage5 - содержит группы объектов, label9-1, textBox3-1, groupBox1, button1, label13, label44.

label2 - принимает текстовое значение "Количество искусственно внесенных ошибок"

label3 - принимает текстовое значение "Число собственных найденных ошибок"

label4 - принимает текстовое значение "Число обнаруженных к моменту оценки искусственных ошибок"

label5 - принимает текстовое значение "Результат"

label9 - принимает текстовое значение "Исходные данные"

label13 - принимает текстовое значение "Конечный результат"

label6 - принимает сокращенное значение "КИВО"

label7 - принимает сокращенное значение "ЧОНО"

label8 - принимает сокращенное значение "ЧОКМОИО"

label10 - первоначально получает пустое значение, а после получает значения графы "Количество искусственно внесенных ошибок"

label11 - первоначально получает пустое значение, а после получает значения графы "Число собственных найденных ошибок"

label12 - первоначально получает пустое значение, а после получает значения графы "Число обнаруженных к моменту оценки искусственных ошибок"

label44 - получает и выводит результат вычислений по формуле Миллса

button1 - принимает текстовое значение "Очистить", а также отчищает все поля в данном блоке.

textBox1 - -получает значение введенных пользовательских данных в графу "Количество искусственно внесенных ошибок"

textBox2 - получает значение введенных пользовательских данных в графу "Число собственных найденных ошибок"

textBox3 - получает значение введенных пользовательских данных в графу "Число обнаруженных к моменту оценки искусственных ошибок"

2.2.4 Макет приложения. Модель Липова(tabPage4)

tabPage4 - содержит группы объектов, label78-74, label84-97, label82, groupBox5, button4.

label74 - принимает текстовое значение "Количество используемых тестов"

label76 - принимает текстовое значение "Общее количество искусственно внесенных ошибок

label77 - принимает текстовое значение "Количество собственных ошибок, до начала тестирования

label78 - принимает текстовое значение "Количество внесенных ошибок к концу тестирования

label86 - принимает текстовое значение "Результат"

label82 - принимает текстовое значение "Исходные данные"

label90 - принимает текстовое значение "Конечный результат"

label91 - принимает текстовое значение "Вероятность обнаружения ошибки при использовании различного числа m тестов"

label92 - получает и выводит результат вычислений по формуле Липова, начальное значение "null"

label85 - принимает сокращенное значение "КИТ"

label84 - принимает сокращенное значение "ОКИВО"

label87 - принимает сокращенное значение "КСОДНТ"

label88 - принимает сокращенное значение "КВОКТ"

label89 - принимает сокращенное значение "КСОКТ"

textBox20 - получает значение введенных пользовательских данных в графу "Количество используемых тестов"

textBox22 - получает значение введенных пользовательских данных в графу "Общее количество искусственных внесенных ошибок"

textBox23 - получает значение введенных пользовательских данных в графу "Количество собственных ошибок до начала тестирования"

textBox24 - получает значение введенных пользовательских данных в графу "Количество внесенных ошибок к концу тестирования"

textBox21 - получает значение введенных пользовательских данных в графу "Количество собственных ошибок к концу тестирования"

button4 - принимает текстовое значение "Очистить", а также отчищает все поля в данном блоке.

2.3 Описание программы

.3.1 tabPage1

Иерархия классов

using System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;System.IO;

Используемые элементы:;;;;;;

Обработчики событийvoid button5_Click(object sender, EventArgs e)

В данной вкладке одна функция

Функция Suman производит расчет по формуле Шумана и передает результат в соответствующий объект вывода, как изображено на рисунке 1.1

{(textBox20.Text == "")

}(textBox22.Text == "")

}(textBox23.Text == "")

}(textBox21.Text == "")

}(textBox24.Text == "")

MessageBox.Show("Введите числовое значение!");

MessageBox.Show("Введите числовое значение!");

MessageBox.Show("Введите числовое значение!");

MessageBox.Show("Введите числовое значение!");

Результат работы вы можете видеть на рисунке 1.2

Рисунок 1.2 Расчет по модели Шумана

2.3.2 tabPage3

Иерархия классовSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;

using System.IO;

Используемые элементы:

Обработчики событийvoid button3_Click(object sender, EventArgs e)

В данной вкладке тоже одна функция

Функция Moranda производит расчет по формуле Джелинского-Моранды и выводит результат

public void Moranda(EventArgs e_Moranda)

{(textBox11.Text == "")

{.Show("Введите количество ошибок спустя время!", "Модель Джелинского-Моранды");

}(textBox13.Text == "")

{.Show("Введите время обнаружения i-ошибки!", "Модель Джелинского-Моранды");

}(textBox12.Text == "")

{.Show("Введите коэффициент пропорциональности!", "Модель Джелинского-Моранды");

}(textBox10.Text == "")

{.Show("Введите число ошибок первоначально находящихся в программе!", "Модель Джелинского-Моранды");

}t10;(!int.TryParse(textBox10.Text, out t10))

MessageBox.Show("Введите числовое значение!");

int t12;(!int.TryParse(textBox12.Text, out t12))

MessageBox.Show("Введите числовое значение!");

int t13;(!int.TryParse(textBox13.Text, out t13))

MessageBox.Show("Введите числовое значение!");

int t11;(!int.TryParse(textBox11.Text, out t11))

MessageBox.Show("Введите числовое значение!");

{.Show("Ошибка:" + ex.Message);

}lambda, C, N, i, P,t;= Double.Parse(textBox10.Text);= Double.Parse(textBox12.Text);= Double.Parse(textBox11.Text);= Double.Parse(textBox13.Text);= C * (N - i + 1);= lambda * Math.Exp(lambda * (-1) * t);

textBox4.Text = " Функция плотности распределения времени обнаружения i-й ошибки, отсчитываемого от момента выявления:" + P. ToString();

label16.Text = N. ToString();.Text = C. ToString();.Text = i.ToString();.Text = t.ToString();

Результат работы виден на рисунке 1.3

Рисунок 1.3 Результат выполнения расчетов по модели Джелинского-Моранды

2.3.3 tabPage5

Используемые элементы:;;;;;;

Обработчики событийvoid button1_Click(object sender, EventArgs e)

В данной вкладке одна функция

Функция Mills производит расчет по формуле Миллса и выводит результат

public void Mills(EventArgs e_Mills)

{(textBox1.Text == "")

{.Show("Введите количество искусственно внесенных ошибок!", "Модель Миллса");

}(textBox2.Text == "")

{.Show("Введите число собственных найденных ошибок!", "Модель Миллса");

}(textBox13.Text == "")

{.Show("Введите число обнаруженных к моменту оценки искусственных ошибок!", "Модель Миллса");

}t1;(!int.TryParse(textBox1.Text, out t1))

MessageBox.Show("Введите числовое значение!");

int t2;(!int.TryParse(textBox2.Text, out t2))

MessageBox.Show("Введите числовое значение!");

int t3;(!int.TryParse(textBox3.Text, out t3))

MessageBox.Show("Введите числовое значение!");

{.Show("Ошибка:" + ex.Message);

}S, n, V, N;= Double.Parse(textBox1.Text);= Double.Parse(textBox2.Text);= Double.Parse(textBox3.Text);

N = (S * n) / V;.Text = "Первоначальное число ошибок в программе равно:" + N. ToString();

label10.Text = S. ToString();.Text = n.ToString();

label12.Text = V. ToString();

Результат выполнения вычислений по формуле Миллса хорошо видны на рисунке 1.4

2.3.4 tabPage4

Иерархия классовSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;System.IO;

Используемые элементы:;;;;;;

Обработчики событийvoid button4_Click(object sender, EventArgs e)

В данной вкладке одна функция

Функция Lipov производит вычисления по формуле Липова и выводит результат

public void Lipov(EventArgs e_Lipov)

{(textBox20.Text == "")

{.Show("Введите количество используемых тестов!", "Модель Липова");

}(textBox22.Text == "")

{.Show("Введите общее количество искусственно внесенных ошибок!", "Модель Липова");

}(textBox23.Text == "")

{.Show("Введите количество собственных ошибок до начала тестирования!", "Модель Липова");

{.Show("Введите количество собственных ошибок к концу тестирования!", "Модель Липова");

}(textBox24.Text == "")

{.Show("Введите количество внесенных ошибок к концу тестирования!", "Модель Липова");

// Проверка на введенные значенияt20;

if (!int.TryParse(textBox20.Text, out t20))

MessageBox.Show("Введите числовое значение!");

int t21;(!int.TryParse(textBox21.Text, out t21))

MessageBox.Show("Введите числовое значение!");

int t22;(!int.TryParse(textBox22.Text, out t22))

MessageBox.Show("Введите числовое значение!");

int t24;(!int.TryParse(textBox24.Text, out t24))

MessageBox.Show("Введите числовое значение!");

int t23;(!int.TryParse(textBox23.Text, out t23))

MessageBox.Show("Введите числовое значение!");

{.Show("Ошибка:" + ex.Message);

}m, q, S, N, n, V;= Double.Parse(textBox20.Text);= Double.Parse(textBox22.Text);= Double.Parse(textBox23.Text);= Double.Parse(textBox21.Text);= Double.Parse(textBox24.Text);= (n + V) / n;Q = (m / (n + V)) * Math.Pow(n + V, q) * Math.Pow(m - n - V, 1 - q) * ((N / n) * (S / V) / ((N + S) / (n + V)));.Text = Q. ToString();.Text = m.ToString();.Text = S. ToString();.Text = N. ToString();.Text = V. ToString();.Text = n.ToString();

{.Show("Введены значения, при которых результат отрицателен!", "Модель Липова");

2.3.5 Сохранение результатов

Для сохранения результатов изпользуется обработчик событий ToolStripMenu.

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

Рисунок 1.6 Выбор пути для сохранения

А после подтверждения сохранения, уведомление об успешной операции:

Рисунок 1.7. Уведомление об успешном сохранении.

3. Руководство пользователя

Для корректной работы программы необходимо заполнить все предложенные в программе модели.

Некоторые из параметров статичны и их изменение может привести к некорректной работе программы.

При сохранении программа автоматически присваивает имя файлу в формате "Результаты №" + рандомное число от 0 до 9999. Вы также можете задать свое имя сохранения.

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

Для расчета и получения результатов нажмите кнопку "Рассчитать".

Заключение

Язык программирования C# на основе Visual Studio способен реализовать все необходимые средства для расчета надежности программ.

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


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

Элементы программного обеспечения не стареют из-за износа или усталости;

В аппаратуре использование стандартных элементов распространено намного шире, чем в системе программного обеспечения;

Количество документации по программному обеспечению гораздо больше по сравнению с количеством документации для аппаратных средств;

Ввести изменения в программы просто, но трудно сделать это корректно.

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

Безотказность программного обеспечения или программы - свойство программы сохранять работоспособность при использовании в процессе обработки информации.

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

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

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

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

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

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

Ошибки, скрытые в самой программе;

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

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

Неисправности аппаратуры, на которой реализуется вычислительный процесс.

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

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

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

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

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

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

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

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

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

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

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

Интенсивность отказов - условная плотность вероятности времени до возникновения отказа программы при условии, что до момента t отказа не было;

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

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

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

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

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

Если M - число ошибок, имеющихся в программе перед фазой тестирования (M = 10); m() - конечное число исправленных ошибок, а m 0 () - число оставшихся ошибок, тогда

m 0 () = M - m() (4.4)

При принятых предположениях интенсивность отказов пропорциональна m 0 (), т.е.

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

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

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

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

Введем - исходное значение среднего времени наработки на отказ перед тестированием (= 1000 ч.). Тогда

В результате имеем

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

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

В информационной системе используется испытанная аппаратура, прошедшая долговременное тестирование;

На тестирование информационной системы отведено недостаточное время для получения достоверных данных.

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

Отчет по лабораторной работе на тему:

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

1 . Модель Шумана основана на следующих допущениях:

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

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

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

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

Предполагается, что до начала тестирования (т.е. в момент =0) имеется M ошибок. В течение времени тестирования τ обнаруживается ε 1 () ошибок в расчете на одну команду в машинном языке.

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

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

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

Z (t) = C * ε 2 (τ),

где С - некоторая постоянная, t - время работы программы без отказов.

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

Нам необходимо найти начальное значение ошибок M и коэффициент пропорциональности С. Эти неизвестные оцениваются путем пропуска функционального теста в двух точках переменной оси отладки  a и  в, выбранных так, что ε 1 ( a)

В процессе тестирования собирается информация о времени и количестве ошибок на каждом прогоне, т.е. общее время тестирования τ складывается из времени каждого прогона:

τ = τ 1 + τ 2 + τ 3 + … + τ n .

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

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

Тогда
. (5)

Имея данные для двух различных моментов тестирования  a и  в, можно сопоставить уравнения (3) при τ a и τ b:

(6)

(7)

Из соотношений (6) и (7) найдем неизвестный параметр С и М:

(8)

(9)

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

Пример 1 .

Программа содержит 2 000 командных строк, из них, до начала эксплуатации (после периода отладки), 15 командных строк содержат ошибки. После
20 дней работы обнаружена 1 ошибка. Найти среднее время безошибочной работы программы и интенсивность отказов программы при коэффициенте пропорциональности, равном 0,7.


Интенсивность отказов

Пример 2.

На условиях примера 1 определить вероятность безошибочной работы программы в течение 90 суток.

Пример 3 .

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

Интенсивности отказов:

2. Модель Миллса. Пусть в процессе тестирования обнаружено n исходных ошибок и v из S рассеянных ошибок. Тогда оценка N - первоначальное число ошибок в программе - составит

.

Вторая часть модели связана с проверкой гипотезы выражения и тестирования N.

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

(11)

как вероятность того, что в программе содержится K ошибок.

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

Формула для расчета С в случае, когда обнаружены не все искусственно рассеянные ошибки, модифицирована таким образом, что оценка может быть выполнена после обнаружения v (vS) рассеянных ошибок:

1
(12)

где числитель и знаменатель формулы при n  К являются биноминальными коэффициентами.

Пример 4 .

Предположим, что в программе имеется 3 собственных ошибки. Внесём ещё 6 ошибок случайным образом.

В процессе тестирования было найдено:

1) 6 ошибок из рассеянных и 2 собственных;

2) 5 ошибок из рассеянных и 2 собственных;

3) 5 ошибок из рассеянных и 4 собственных.

Найти надёжность по модели Миллса - С.

ош - собственные

ош - случайные

по формуле (12)

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

Пусть первая группа обнаружила n 1 ошибок, вторая n 2 , n 12 - это число ошибок, обнаруженных как первой, так и второй группой.

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

.

Эффективность тестирования можно интерпретировать как вероятность того, что ошибка будет обнаружена. Таким образом, можно считать, что первая группа обнаруживает ошибку в программе с вероятностью , вторая - с вероятностью . Тогда вероятность p 12 того, что ошибка будет обнаружена обеими группами, можно принять равной . С другой стороны, так как группы действуют независимо друг от друга, то р 12 = р 1 р 2 . Получаем:

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

Пример 5 .

В процессе тестирования программы 1-я группа нашла 15 ошибок, 2-я группа нашла 25 ошибок, общих ошибок было 5. Определить надёжность по простой интуитивной модели.

4. Модель Коркорэна

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

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

    в модели используются такие параметры, как результат только N испытаний, в которых наблюдается N i ошибок i-го типа;

    выявление в ходе N испытаний ошибки i-го типа появляется с вероятностью а i .

Показатель уровня надежности R вычисляют по следующей формуле:

где N 0 - число безотказных (или безуспешных) испытаний, выполненных в серии из N испытаний, k - известное число типов ошибок, a i - вероятность выявления при тестировании ошибки i-го типа,

Y i - вероятность появления ошибок, при N i > 0, Y i = a i , при N i = 0, Y i = 0.

Пример 6 .

Было проведено 100 испытаний программы. 20 из 100 испытаний прошли безуспешно, а в остальных случаях получились следующие данные:

Тип ошибки

Вероятность появления ошибки a i

1. Ошибки вычисления

2. Логические ошибки

3. Ошибки ввода/вывода

4. Ошибки манипулирования данными

5. Ошибки сопряжения

6. Ошибки определения данных

7. Ошибки в БД

Оценить надёжность по модели Коркорэна.

Исходные данные:


Пример 7. Было проведено 100 испытаний программы. 20 из 100 испытаний прошли безуспешно, а в остальных случаях получились следующие данные:

Тип ошибки, i

Вероятность появления ошибки. a i

Число появления ошибок N i при испытании

обеспечения . Кулаков. Управление качеством программного обеспечения . Для подготовки...
  • Создание автоматизированной системы для оптимизации процесса создания надежного программного обеспечения на языке JAVA

    Контрольная работа >>

    Проблема надежности программного обеспечения имеет два аспекта: обеспечение и оценка надежности . Для обеспечения надежности программ предложено... И ИПОЛЬЗУЕМЫЕ СТРУКТУРЫ. Внутреннее состояние модели разрабатываемой системы описывается информацией о...

  • Надежное программное средство как продукт технологии программирования. Исторический и социальный контекст программирования

    Конспект >> История

    Основная причина ошибок при разработке программных средств. Модель перевода и источники ошибок. Интеллектуальные... архитектурная функция? Литература к лекции 6. 6.1. Г. Майерс. Надежность программного обеспечения . - М.: Мир, 1980. - С. 78-91. 6.2. E.W. ...

  • Сертификация и надежность программного обеспечения

    Конспект >> Информатика, программирование

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

  • Программное обеспечение торговых предприятий

    Реферат >> Информатика

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

  •