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

В составе современных технических систем всё больший удельный вес занимают средства вычислительной техники. Стоимость основной ячейки интегральных микросхем – логического вентиля – с развитием электроники непрерывно снижается. Напротив, программное обеспечение, удельная стоимость которого у первых ЭВМ была очень малой, в настоящее время составляет более 90 % стоимости компьютеров. Этот рост стоимости объясняется несколькими причинами:

1) Технология создания программного обеспечения серьезно отстаёт от технологии производства элементной базы;

2) по своей природе программное обеспечение сложнее оборудования (объём программ для современных систем оценивается в 10 6 – 10 8 и более команд или информационных слов);

3) требования к программному обеспечению в течение его жизненного цикла, который увеличился до 15 – 20 лет, существенно изменяются;

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

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

Приближенно можно полагать, что отношение числа ошибок в программе к общему числу команд в ней лежит в диапазоне от 0,25 до 10 на 1000 команд. Это означает, что в ПО объёмом в 0,5 млн. команд может быть 125 – 5000 ошибок; причем, такая оценка является оптимистической. Выявление ошибок и их исправление является процессом многоэтапным (в соответствии с этапами «жизни» ПО), трудоёмким и дорогостоящим. По мере перехода к более поздним этапам разработки ПО цена ошибки возрастает, тенденцию этого роста иллюстрирует таблица:

Таблица 2.1 - Примерная «цена» программной ошибки на разных этапах жизни программного обеспечения

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

2.3.1 Основные определения теории надёжности программного обеспечения

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

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

Появление при программировании ошибочного операнда или операции;

Несоответствие выполняемых ПО функций требованиям спецификаций, либо ошибка в спецификации, которая приводит к ошибке при выполнении операции ПО;

Ошибки вычислительного характера (например, переполнение);

Исправление ПО, улучшающее его взаимодействие с пользователем.

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

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

, (2.80)

где - число обнаруженных ошибок на данном этапе.

Дифференцируя уравнение (2.80) по времени получим

где - есть функция риска . Если решить дифференциальное уравнение , с начальными условиями то

(2.81)

Обозначим Тогда уравнение (2.81) можно переписать в виде

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

(2.83)

Расчёт экспоненциальной регрессии даёт следующие выражения для её коэффициентов

(2.84)

(2.85)

Программа для расчёта экспоненциальной регрессии приведена ниже в 2.3.3.

Будем под удельной интенсивностью обнаружения ошибок в ПО понимать следующую функцию времени:

(2.87)

где - число ошибок в ПО, которые исправлены к моменту времени t ; - число команд в программе. Приближенно можно полагать, что

здесь - разрядность команды; - объем программы по Холстеду, что будет; В – число оставшихся ошибок в ПО к моменту t = 0; К – коэффициент пропорциональности. Величины В и К являются неизвестными.

Рассмотрим два периода отладки программы Т 1 и Т 2 такие, что Т 1 < Т 2 . Пусть n 1 и n 2 соответственно количество ошибок в ПО, обнаруженных в каждом из периодов. Тогда для среднего времени безошибочной (безотказной) работы в каждом из периодов можно записать следующие выражения:

(2.89)

(2.90)

Разделив первое равенство на второе, после преобразований можно получить:

(2.91)

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

. (2.92)

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

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

Ввод возможной комбинации Е i входных данных;

Выполнение расчёта по программе, которая заканчивается получением результата F(E i) или отказом.

Для определенного набора входных данных отклонение результата от заданного значения F`(E i), полученное в результате выполнения программы, находится в допустимых пределах

(2.93)

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

> (2.94)

События, описываемые неравенством (2.94), называются отказами программы.

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

(2.95)

где если выполняется неравенство (2.93); если выполняется неравенство (2.94).

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

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

Для проверки надёжности ПО используются методы проверки статистических гипотез и, в частности, последовательный анализ Вальда. Сопоставим дихотомической переменной значение 1 , если выполняется (2.94), и значение 0, если выполняется (2.93). Тогда результат прогонов образует выборку случайных величин Обозначим вероятность того, что , т.е. программа отказывает, как Р; а вероятность Р 0 того. что принимает значение 0, а программа исправна. Тогда выбор значения

Р 0 =0,99 означает, что в серии из 100 прогонов вероятно в среднем появление одного отказа.

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

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

Для любой программы можно определить:

Число различных операций , например, и др.;

Общее число всех операндов (переменных и констант);

Общее число всех операций

Общее число всех операндов

Тогда словарь программы есть , а длина реализации составляет Длина программы в этом случае равна

а объём программы (2.97)

потенциальный объём программы

где минимальное число различных операндов (точнее, число независимых входных и выходных величин).

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

Работа по программированию Е оценивается как суммарное число элементарных мысленных отличий между элементами, необходимых для генерации программы:

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

что позволяет иначе выразить характеристики Е и V :

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

Таблица 2.2 – Численные значения уровня языка

Трудоемкость разработки программного обеспечения определяется по формуле

чел. - часов; (2.104)

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

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

Коэффициент пропорциональности С определяют, исходя из следующих соображений. В соответствии с эмпирическим законом Д. Миллера «7 2» для определим, что , а для английского языка с учётом (2.100) получим

что позволяет оценить коэффициент С как

однако для языков более низкого уровня правильнее оценивать С , используя выражение более общего вида

что, в частности, для Ассемблера даёт значение Таким образом,

(2.108)

или в более общей форме

Значения величин и могут быть определены из результатов анализа ПО или косвенно путем решения уравнений Холстеда, если известны значения и :

(2.110)

2.3.2 Методика оценки числа оставшихся ошибок в программе

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

Пример 1. Рассматривается система контроля посадки самолётов в условиях ограниченной видимости. В состав системы входят курсовой радиомаяк, глиссадный радиомаяк, ответчик радиодальномера. Входными величинами системы являются: три пространственные координаты (азимут, угол места, дальность), всего количество координат равно Три информационных эталонных канала, т.е. - четыре координаты самолёта (высота, путевая скорость, крен, тангаж).

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

Решение.

потенциальный объём программы равен

а количество потенциальных ошибок в ПО равно

Пример 2. Определить характеристики программного обеспечения для боевой космической станции (БКС) системы противоракетной обороны (ПРО) типа стратегической оборонной инициативы президента США Рейгана. БКС должна быть рассчитана на перехват около 1000 целей с расстояния примерно 400 км.

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

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

Выходные величины программы – это угловые координаты целей и расстояние до них. Для 20 целей количество выходных величин составляет

Итак,

что даёт для потенциального объёма программы значение равное

Расчёты показывают, что для создания такого объёмного ПО требуется около 10 12 чел. - часов. Потенциальное количество ошибок в этом гигантском по объёму ПО для языков различного уровня равно:

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

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

Значение складывается из числа команд , используемой системы команд и из числа отдельных подпрограмм . В ПО примера использовалось 45 различных операторов, число подпрограмм составило 157. Таким образом,

Количество операндов равно сумме (различные переменные и массивы данных, используемых в ПО); плюс количество локальных меток и констант . Для облегчения подсчёта используют имеющееся распределение памяти оперативного запоминающее устройства (ОЗУ), при этом подходе исключается повторяемость соответствующих операндов. Число локальных меток подсчитывают по тексту программы на Ассемблере слева от мнемонической записи команды. Таким способом гарантируется не повторяемость меток, а общепринятая табуляция облегчает подсчёт. Сложнее сосчитать число различных констант, которые оформляются в массивы числовых данных и используются при адресации в Ассемблере. Поэтому по тексту программы считают лишь число констант, заведомо помещающихся в одном байте. Как правило, они выделяются в тексте и вероятность их совпадения очень мала. К значению этой величины прибавляют 256 – число возможных байтовых констант. Для рассматриваемого ПО указанные величины имеют следующие значения:

82 + 334 + 280 + 256 = 952.

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

В результате решения Эти значения можно полагать приемлемыми (отличие от реального ПО составляет 11,0 % и 10,5 %).

Рассчитаем длину программы

и определим объём программы

Уточнённая оценка переданного количества ошибок в ПО равна:

Оценка отличается от полученной ранее = 168 лишь на 12 % и по своему смыслу является более близкой к реальности.

2.3.3 Методика расчёта интенсивности обнаружения ошибок в зависимости от времени эксплуатации программы

В процессе комплексной отладки ПО видоизменяется с целью осуществления недостающих функций и внесения исправлений для обнаруженных ошибок в уже реализованной программе. Такие изменения обычно заносятся в специальный журнал учёта исправлений с указанием даты и семантики исправления. В качестве примера рассмотрим ПО из примера 1. Исходными данными являются результаты комплексной отладки этого ПО примерно за двухлетний период. Количество обнаруженных ошибок фиксировалось помесячно, поэтому интенсивность обнаружения ошибок имеет размер «количество ошибок/месяц». Значения интенсивности обнаружения ошибок за 20 месяцев приведены ниже в таблице. Таблица 2.3 - Значения интенсивности обнаружения ошибок

Δt i
r(t i)
Δt i
r(t i)

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

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

Таблица 2.4 - Интенсивность обнаружения ошибок на квартал вперед

Δt i
r(t i)

2.3.4 Статистическая оценка вероятности безотказной работы

программного обеспечения

Рассмотрим метод последовательного анализа для оценки вероятности безотказной работы программы. В нём вводится допущение о том, что если вероятность успешного прогона Р находится в достаточно малой окрестности точки Р 0 , то риск принятия неправильного решения допустимо мал. Под неправильным решением понимают решение отвергнуть надёжную программу или пропустить не надёжную программу. Для формализации этого допущения задают такие P` и P`` (P`

Что принятие не надёжной программы рассматривается как ошибочное решение только при , а отказ от надёжной программы является ошибочным в случае, когда . После задания значений вероятностей P` и P`` допустимый риск принятия неправильных решений таков, что вероятность ошибки первого рода, т.е. отказа от надёжной программы, не должна превышать α = Вер , а вероятность ошибки второго рода, т.е. принятия не надёжной программы не должна превышать β = Вер . Значения величин α и β при этом назначаются, исходя из разумного компромисса, до начала испытаний, так как с их уменьшением растёт объём испытаний.

Сущность последовательного анализа гипотезы Н 0 (Р = Р 0) состоит в проверке двух конкурирующих гипотез Н`(P = P`) и H``(P = P``). Здесь под вероятностью безотказной работы ПО P(m) понимают вероятность получения выборки в которой для элементов P`

Тогда

Если верна гипотеза H`, то

Аналогично, если верна гипотеза H``, то

Составим отношение «правдоподобия»:

(2.114)

Последовательный анализ проводится до тех пор, пока не будет выполняться следующие неравенства:

(2.115)

Если на этапе m то ПО не надёжно; а если то ПО можно принять как надёжное.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Функция надежности 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 ч.). Тогда

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

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

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

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

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

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

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

Наиболее распространенными среди зарубежных ПК являются: 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.

Надёжность программного обеспечения | сайт блог инженера по надёжности

Надёжность программного обеспечения. Ввведение

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

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

На предприятиях космической отрасли ситуация ещё лучше. Когда я спросил у специалистов одного уральского НПО, как они считают надёжность программного обеспечения, они сделали круглые глаза и сказали: «А чё там, за единицу берём да и всё. А надёжность обеспечиваем отработкой». Я согласен, что такой подход имеет право на жизнь, однако хотелось бы большего. Короче, я написал свою методику, прошу любить и жаловать. Внизу привожу калькулятор, на котором можно посчитать надёжность этого вашего ПО.

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

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

Показатели надёжности ПО

Наиболее распространенными показателями надёжности ПО являются следующие:
– начальное число ошибок N0 в ПО после сборки программы и перед её отладкой;
– число ошибок n в ПО, обнаруженных и оставшихся после каждого этапа отладки;
– наработка на отказ (MTBF), часов;
– вероятность безотказной работы (ВБР) ПО за заданное время работы P(t);
– интенсивность отказов ПО λ, 10-6 1/ч.

Упрощенная оценка надёжности ПО

Сперва рассмотрим методики, которые предлагаем нам отечественная нормативная база. Единственный нормативный документ по данной теме это
Оценка надежности ПО по ГОСТ 28195-99 рассчитывается по весьма упрощенной методике, констатирующей фактическую надёжность по опыту эксплуатации программного комплекса P(t) 1-n/N, где n – число отказов при испытаниях ПО; N – число экспериментов при испытаниях. Очевидно, что посчитать по этой методике ничего нельзя.

Статистическая оценка надёжности ПО

Куда больший интерес представляет описанная в среднестатистическая оценка начального числа N0 ошибок в ПО после автономной отладки. Согласно данной оценке, количество ошибок на 1 К слов кода составляет 4,34 для языков низкого уровня (Ассемблер) и 1,44 для языков высокого уровня (С++). К сожалению, не совсем понятно, что имели в виду авторы под фразой «1 К слов кода». В англоязычной литературе принято использовать параметр тысяча строк кода (ТСК) (KLOC). Так, согласно для операционной системы Windows 2000 плотность ошибок составляет 1,8-2,2 на ТСК. Учитывая, что Windows 2000 написан на языке программирования C и имеет близкую размерность числа ошибок, можно с высокой долей достоверности предположить, что отечественный авторы имели в виду именно параметр ТСК.
Отечественные авторы в приводят статистические показатели интенсивности отказов ПО λ. Приведём их в
таблице 1.1.

Таблица 1.1

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

Таблица 1.2

И коэффициент, отражающий влияние времени работы программы:

Таблица 1.3

Тогда интенсивность отказов ПО λ определяется с помощью таблиц 1.1-1.3 по выражению:

λ по = λ* Кр* Кк* Кз* Ки (1.1)

Пример расчёта 1.
Объем ПО составляет 1 Мб, например.
Тогда, согласно таблице 1.1 λ = 6
Используем усредненные поправочные коэффициенты. Пусть:
Кр = 2 (короткий срок использования ПО)
Кк = 0,25 (высокое качество ПО)
Кз = 0,25 (высокая частота изменений ПО)
Ки = 1 (уровень загруженности средний)
λ по = 0,1 * 10 -6 отказов/час

P(t) = exp**(-λ*t) (1.2)

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

Количественная модель оценки надёжности ПО

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

Таблица 1.4

Зная V, объём кода ПО, в битах, мы можем получить число строк этого кода. Удобнее использовать параметр ТСК.

ТСК = V/146000 (1.3)

Используя данные таблицы 1.4 можно получить β, коэффициент количества ошибок на тысячу строк кода:

β = 1,44*ТСК/1000 (1.4)

Объем ПО составляет 10 Мб. Язык разработки С++.
Тогда, согласно 1.3-1.4, β составит 0,08
Данный показатель очень близок к результату Примера 1.

Так появилась идея сопоставить параметр λ — интенсивности отказов ПО, получаемые статистической моделью и β, коэффициент количества ошибок ПО.

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

Можно сделать предположение, что введенный нами (придуманный мной) β по физическому смыслу близок к λ, интенсивности отказов. λ характеризует частоту отказов. β характеризует частоту ошибок в программе, а значит и отказов. Но! λ и β различаются. λ, единожды определённый для транзистора не изменяется от количества транзисторов. β — коэффициент динамический. Чем больше объём программы, тем больше β. Но это и логично. Чем больше программа, тем в ней больше ошибок. Кроме того, можно предположить, что авторы таблицы 1.1 написали её для ПО на языке С.

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

P(t) = exp**(-λ*t)

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

Надёжность авиационных приборов и измерительно-вычислительных комплексов, В.Ю. Чернов/ В.Г. Никитин; Иванов Ю.П. – М. 2004.
Надёжность и эффективность в технике: Справочник., В.С. Авдуевский. 1988.
Estimating source lines of code from object code, L. Hatton. 2005.

Попробуйте теперь что-нибудь посчитать. Например, найдите надёжность программного обеспечения, объём которого 100 Мб, и которое должно проработать 100 часов. Важно! Обратите внимание, что λ при изменении объёма ПО каждый раз пересчитывается под конкретный размер ПО.

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

Р сист = Р апп.ч Р прог.ч , (1)

где Р сист - надежность всей системы;

Р апп.ч - надежность аппаратной части;

Р прог.ч - надежность программной части.

Расчет надежности программной части

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

Р прог.ч = Р сервер Р клиент P ПО , (2)

где Р сервер - надежность программного обеспечения сервера;

Р клиент - надежность программного обеспечения клиента;

Р ПО - надежность разработанного программного обеспечения.

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

Надежность программного обеспечения сервера рассчитывается по формуле(3):

Р сервер = Р СУБД Р ОС , (3)

где РСУБД - надежность системы управления базой данных;

Р ОС - надежность операционной системы, установленной на сервере.

В качестве операционной системы, установленной на сервере, используется Red Hat Enterprise Linux 5, компания производитель установила вероятность безотказной работы равной:

Р ОС = 0,99.

В качестве сервера базы данных используется СУБД Cache, компания производитель Intersystems установила вероятность безотказной работы равной:

Р СУБД = 0,98.

Таким образом, вероятность безотказной работы ПО сервера составляет:

Р сервер =0,99 0,98= 0,98

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

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

Р клиент = Р ОС Р ВБ , (4)

где Р ОС - надежность операционной системы, установленной на клиенте;

Р ВБ - надежность веб-браузера, используемого клиентом.

В качестве операционной системы, установленной на клиенте, используется Windows 7 Home Premium, компания производитель Microsoft Corporation установила вероятность безотказной работы равной:

Р ОС = 0,98.

Для пакета Internet Explorer 10, компания производитель установила вероятность безотказной работы равной:

Р ВБ = 0,9.

Вероятность безотказной работы программного обеспечения клиента составляет:

Р клиент = 0,98 0,9 = 0,88

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

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

Используя модель Миллса, рассчитаем надежность программного обеспечения разработанной системы. В программу было искусственно занесено S = 25 ошибок и при Т = 100 запусков обнаружено V = 24 искусственных и n = 4 собственных ошибок. Предполагается, что все ошибки, как искусственные, так и собственные, имеют равную вероятность быть обнаруженными. Тогда первоначальное количество ошибок можно определить из соотношения (5):

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

где К? n - число собственных ошибок; числитель и знаменатель формулы являются биноминальными коэффициентами вида (7):

Получаем вероятность того, что в системе было 5 собственных ошибок С = 0,75.

Вероятность неверного исхода определяется по формуле 8.

Вероятность безотказной работы (ВБР) определяется формулой (9):

График зависимости безотказной работы программного обеспечения системы от времени (в часах) представлен на рисунке 23.

Рисунок 23 - Зависимость вероятности безотказной работы программного обеспечения от времени (в часах)

Надежность программной части. По формуле (5.2) определим вероятность безотказной работы всей программной части системы и построим график зависимости. График зависимости вероятности безотказной работы программной части системы от времени (в часах) представлен на рисунке 24.


Рисунок 24 - Зависимость вероятности безотказной работы программной части системы от времени (в часах)

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