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

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

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

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

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

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

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

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

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

Наиболее распространенными показателями надёжности ПО являются следующие:
– начальное число ошибок 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 часов. Важно! Обратите внимание, что λ при изменении объёма ПО каждый раз пересчитывается под конкретный размер ПО.

Размер: px

Начинать показ со страницы:

Транскрипт

1 # 06, июнь 2016 УДК Обзор программных комплексов расчета надежности технических систем Введение Шаламов А.В., магистрант Россия, г. Москва, МГТУ им. Н.Э. Баумана, кафедра «Проектирование и технология производства электронной аппаратуры» Научный руководитель: Соловьев В.А., доцент Россия, г. Москва, МГТУ им. Н.Э. Баумана, кафедра «Проектирование и технология производства электронной аппаратуры» В настоящее время на рынке систем расчета надежности существует много решений как зарубежного, так и российского производства. К наиболее популярным зарубежным системам расчета надежности можно отнести следующие: Relex, Risk Spectrum, A.L.D., ISOgraph. Из российских систем можно выделить системы: Арбитр, АСМ, АСОНИКА-К. Некоторые из приведенных систем помимо инструментов расчета параметров надежности позволяют решать широкий спектр связаных инженерных задач. Далее рассмотрим подробнее приведенные програмные комплексы (ПК) с точки зрения применения их для расчета надежности ЭРА. ПК Relex и Risk Spectrum ПК Relex и Risk Spectrum позволяют проводить логико-вероятностный анализ надежности и безопасности технических систем, например, расчет надежности современных автоматизированных систем управления технологическими, оптимизацию техногенного риска и определение оптимальных параметров системы технического обслуживания потенциально опасных объектов. Основное применение ПК Risk Spectrum получил в вероятностном анализе безопасности объектов атомной энергетики на стадии проектирования. Комплекс Spectrum используется более чем на 50% атомных станций мира, включен в перечень программных средств, аттестованных Советом по аттестации

2 программных средств Госатомнадзора России в 2003 г. ПК Relex и Risk Spectrum могут быть использованы для расчета надежности не только управляющих или технологических систем, но и изделий приборостроения на транспорте, в оборонной технике. В основе моделирования и расчета показателей надежности и безопасности технических систем, широко применяемых в Европе и США, лежат логико-вероятностные методы, использующие в качестве средства построения графических моделей надежности деревья событий и деревья отказов (рисунок 1). Использование аппарата математической логики позволяет формализовать условия работоспособности сложных технических систем и расчет их надежности. Если можно утверждать, что система работоспособна в случае работоспособности ее элементов A и B, то можно сделать вывод о том, что работоспособность системы (событие С) и работоспособность элементов A и B (событие A и событие B) связаны между собой логическим уравнением работоспособности: C = A B. Здесь обозначение используется для отображения логической операции И. Логическое уравнение работоспособности для данного случая может быть представлено схемой последовательного соединения элементов A и B. В общем случае под деревом событий понимается графическая модель, описывающая логику развития различных вариантов аварийного процесса, вызываемого рассматриваемым исходным событием. Под деревом отказов понимается графическая модель, отображающая логику событий, приводящих к отказу системы вследствие возникновения различных комбинаций отказов оборудования и ошибок персонала. Рис. 1. Дерево отказов в ПК Relex Молодежный научно-технический вестник ФС, ISSN

3 В состав дерева отказов входят графические элементы, служащие для отображения элементарных случайных событий (базисных событий) и логических операторов. Каждому логическому оператору булевой алгебры соответствует определенный графический элемент, что позволяет производить декомпозицию сложных событий на более простые (базисные или элементарные). В модуле дерева отказов ПК Relex используются логико-динамические операторы, учитывающие зависимость событий, временные соотношения, приоритеты. Он позволяет осуществлять расчет следующих показателей: вероятность отказа, неготовность, параметр потока отказов, среднее число отказов. Значения показателей вычисляются как для вершинного события, так и для каждого промежуточного. Для каждого выделенного события можно просматривать и анализировать наборы соответствующих минимальных сечений. В ПК Risk Spectrum дерево событий представляется в виде таблицы, содержащей строку заголовков, поле, в котором помещен разомкнутый бинарный граф, несколько столбцов с характеристиками конечных состояний моделируемого объекта, реализующихся в процессе осуществления аварийных последовательностей (рисунок 2). В заголовке 1-го столбца таблицы указывается обозначение исходных событий. В последующих заголовках столбцов слева направо размещаются названия и условные обозначения промежуточных событий, соответствующих успешному или неуспешному выполнению функций безопасности, работоспособным или отказовым состояниям систем безопасности или отдельных компонентов (оборудования и технических средств), правильным или ошибочным действиям персонала. В столбцах, характеризующих конечные состояния (КС), указываются их номера, условные обозначения, типы (например, КС с повреждением активной зоны), вероятности реализации, логические формулы, соответствующие данным аварийным последовательностям (АП). С помощью АП на дереве событий отображаются варианты развития аварийного процесса. При этом под АП понимается последовательность событий, приводящих к некоторому конечному состоянию объекта, включающая исходное событие аварии, успешные или неуспешные срабатывания систем безопасности и действия персонала в процессе развития аварии. С ПК Relex работают многие известные зарубежные компании: 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 входят различные аналитические модули для решения широкого спектра задач: прогнозирования безотказности, ремонтопригодности,

4 анализа видов, последствий и критичности отказов, марковского анализа, статистического анализа, оценки стоимости срока службы оборудования, а также блок-схемы надежности, деревья отказов/событий, система оповещения об отказах, анализе и корректирующих действиях, FRACAS-система (Failure Reporting Analysis and Corrective Action System), система оценки человеческого фактора и анализа рисков. Рис. 2. Бинаное дерево событий в ПК Spectrum Модуль прогнозирования безотказности содержит модели для расчета показателей надежности элементов. В него включена обширная база данных, содержащая классификационные признаки элементов и характеристики надежности. Расчеты проводятся в соответствии со стандартами: 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) используется для анализа сложных резервированных систем. Содержит как аналитические методы, так и методы моделирования Монте-Карло. Модуль деревья отказов/деревья событий позволяет реализовывать процедуры для дедуктивного и индуктивного анализа развития отказов, Молодежный научно-технический вестник ФС, ISSN

5 событий в системе. Применяется для анализа надежности и безопасности. Содержит широкий набор логико-функциональных вершин. Модуль марковского моделирования ПК Relex позволяет использовать процессы, которые применяются в моделировании и анализе надежности систем. Разрабатываемые с помощью этого аппарата модели являются динамическими и отражают необходимые временные условия и другие особенности, зависимости, которые конкретизируют траекторию переходов системы в пространстве возможных состояний, образованных отказами, восстановлением элементов. В модуле ПК Relex Markov реализованы марковские процессы с дискретным множеством состояний и непрерывным временем, учитывающие следующие особенности функционирования и резервирования систем: несовместные виды отказов элементов, последовательность возникновения отказов, изменение интенсивностей отказов элементов в зависимости от уже происшедших событий (в частности, степень нагруженности резерва), количество бригад по восстановлению (ограниченное/неограниченное), очередность восстановления, ограничения на ЗИП, различную эффективность функционирования в различных состояниях системы и доходы (потери) за переходы в состояния. Вычисляемые показатели: вероятность каждого из состояний, вероятность безотказной работы (отказа) на заданном интервале времени. Модуль статистического анализа «Weibull» предназначен для обработки результатов испытаний, эксплуатации. Для описания катастрофических отказов на ваннообразной кривой интенсивности отказов широко используют нормальное, логнормальное распределения, распределение Вейбулла. Например, распределение Вейбулла, являющееся распределением минимальных величин, наиболее часто используется при прогнозировании вероятности безотказной работы и среднего времени наработки на отказ при заданном времени эксплуатации проектируемой сложной технической системы. Логнормальное и вейбулловское распределения одинаково хорошо описывают отказы, характерные для периода старения. Модуль статистического анализа «Weibull» использует различные виды распределений, включая нормальное, Вейбулла, логнормальное, равномерное, экспоненциальное, Гумбеля, Рэлея, биномиальное и другие. Представление и анализ данных для выбранных классов параметрических распределений проводится с использованием метода «вероятностной бумаги». На ней анализируемое распределение представляется прямой линией, что обеспечивает наглядность и позволяет естественным образом применять все методы регрессионного анализа, в частности, проверку адекватности модели и значимости коэффициентов регрессии (фишеровский анализ). Для оценок параметров распределений предлагается

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

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

8 экспоненциальное и DN распределения и может быть адаптировано к любой другой модели надежности. Оно позволяет рассчитывать РЭА, содержащие до четырех иерархических уровней разукрупнения и имеющие различные типы резервирования. Результаты расчетов могут быть представлены как в текстовом, так и в графическом виде. ПК АСОНИКА-К позволяет проводить следующие виды анализа расчета надежности: анализ результатов расчетов надежности РЭА, СРН которых представляет собой произвольное соединение составных частей (древовидное, иерархическое) и анализ результатов расчета составных частей, с последовательным соединением. Использование ПК АСОНИКА-К позволяет повышать надежность РЭА путем резервирования ее составных частей. На рисунке 3 показаны значения вероятности безотказной работы, коэффициент готовности и коэффициент оперативной готовности всего объекта в целом. Отказы составных частей являются внезапными и представляют собой независимые события, время до отказа является случайной величиной, распределенной по экспоненциальному закону с постоянной интенсивностью отказов λ. Также показаны функция и плотность распределения времени наработки на отказ, а также зависимость интенсивности отказов проектируемой РЭА с использованием графического анализа. ПК позволяет проводить расчет надежности с использованием различных видов резервирования составных частей: скользящее горячее резервирование, горячее резервирование и без резервирования, а также обеспечивает способы контроля их работоспособности (непрерывный/периодический). В дальнейшем в ПК планируется добавить еще два модуля: система учета влияния на характеристики надежности внешних факторов и информационно-справочая система по характеристикам надежности элементной базы. Закючение ПК Relex, Risk Spectrum и АСМ реализуют класс моделей оценки показателей надежности технических систем логико-вероятностного моделирования. Его можно назвать классом статистических моделей, так как они позволяют вычислять показатели надежности, безопасности и эффективности систем в произвольный момент времени, в зависимости от возможных наборов работоспособных и неработоспособных состояний элементов системы. Отдельные модули ПК A.L.D. Group (RAM Commander), Relex, Isograph возможно использовать для автоматизированного расчета надежности отечественной РЭА только лишь на базе импортных ЭРИ, оценка надежности которых ведется по различным зарубежным справочникам. Молодежный научно-технический вестник ФС, ISSN

9 Использование зарубежных ПК требует от пользователей высокой подготовки в области математической статистики и ее приложения к задачам теории надежности. Российские ПК не уступают по возможностям зарубежным ПК и может быть рекомендован для проведения расчетов надежности отечественной РЭА на базе как импортных, так и отечественных ЭРИ. Главное преимущество возможность вести расчеты надежности, используя отечественные базы компонентов и стандарты. Список литературы . Строганов А. В., Жаднов В. К., Полесский С. М. Обзор програмных комплексов по расчету надежности сложных технических систем / под ред. Д. Д. Краснова. М.: ВШЭ, с. . Тихомиров М. В., Шалумов А. С. Оценка надежности и качества РЭС / под ред. М. В. Хохлова. М.: Солон-пресс, с. . Шалумов А. С. Приемущества АС обеспечения надежности и качества аппаратуры АСОНИКА. М.: МИЭМ, с. . Затылкин А. В., Таньков Г. В., Кочегаров И. И. Алгоритмическое и програмное обеспечение расчета параметров надежности РЭС/ под ред. С. П. Малюква. М.: ПГУ, с.


Ломаев Е.Н., Демёхин Ф.В., А.В. Фёдоров, М.И. Лебедева, А.В. Семериков ОБЗОР ПРОГРАММНЫХ КОМПЛЕКСОВ ДЛЯ ОЦЕНКИ НАДЁЖНОСТИ СИСТЕМ АВТОМАТИЧЕСКОЙ ПРОТИВОПОЖАРНОЙ ЗАЩИТЫ И БЕЗОПАСНОСТИ ОБЪЕКТОВ Проводится

ИСПОЛЬЗОВАНИЕ Windchill Quality Solutions для контроля качества и анализа надежности Общие сведения о Windchill Quality Solutions Приложение Windchill Quality Solutions (ранее Relex) предназначено для

2 1. Цели и задачи дисциплины Цель изучения дисциплины «Надежность технических систем и техногенный риск» состоит в том, чтобы дать знания по основам оценки надежности технических систем; познакомить с

Кулыгин В.Н., Жаднов И.В., Полесский С.Н., Цыганов П.А. ПРОГРАММА РАСЧЕТА ПОКАЗАТЕЛЕЙ НАДЕЖНОСТИ ЭЛЕКТРОННЫХ МОДУЛЕЙ (система АСОНИКА-К-СЧ) УДК 621.396.6, 621.8.019.8 Программа расчета показателей надежности

2.8. Расчет надежности системы с защитой 2.8.1. Описание задачи Имеется система, состоящая из технического объекта и системы защиты объекта от последствий отказов его элементов. В качестве примера такого

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

Чан Донг Хынг (Вьетнам) (Академия Государственной противопожарной службы МЧС России, e-mail: [email protected]) ТЕХНОЛОГИЯ ОЦЕНКИ НАДЁЖНОСТИ АВТОМАТИЗИРОВАННЫХ СИСТЕМ УПРАВЛЕНИЯ ПРОТИВОПОЖАРНОЙ ЗАЩИТОЙ

МИНИСТЕРСТВО ЗДРАВООХРАНЕНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ ВОЛГОГРАДСКИЙ ГОСУДАРСТВЕННЫЙ МЕДИЦИНСКИЙ УНИВЕРСИТЕТ КАФЕДРА БИОТЕХНИЧЕСКИХ СИСТЕМ И ТЕХНОЛОГИИ ТЕСТОВЫЕ ЗАДАНИЯ ПО ПОВЕРКА, БЕЗОПАСНОСТЬ И НАДЕЖНОСТЬ

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АЭРОКОСМИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ АКАДЕМИКА С.П. КОРОЛЕВА

Жаднов В.В., Полесский С.Н. ПРОЕКТНАЯ ОЦЕНКА НАДЕЖНОСТИ КОМБИНИРОВАННЫХ РАДИОТЕХНИЧЕСКИХ СИСТЕМ Современная тенденция развития радиотехнических систем (РТС) характеризуется увеличением функций, выполняемых

УДК 656.56: 68.3 ШЕВЧЕНКО Д. Н. к.т.н., доцент (БелГУТ) АНАЛИЗ ДИНАМИЧЕСКОГО ДЕРЕВА ОТКАЗОВ Статью представил д.т.н., проф. Бочков К. А. Введение Анализ дерева отказов (Fault Tree Analysis FTA) один из

1. Цели и задачи дисциплины Цель изучения дисциплины «Надежность технических систем и техногенный риск» состоит в том, чтобы дать знания по основам оценки надежности технических систем; познакомить с теорией

Рабочая программа составлена в соответствии с государственным образовательным стандартом высшего профессионального образования по направлению подготовки специалистов 3001 «Информационные системы и технологии».

Применение автоматизированного структурнологического моделирования для проектного расчета надежности АСУ А.С. Можаев, М.С. Скворцов, А.В. Струков /ОАО "СПИК СЗМА", г. Санкт-Петербург/ Введение Расчет надежности

ТИТУЛЬНЫЙ ЛИСТ Программа составлена на основе федерального государственного образовательного стандарта высшего образования (уровень подготовки кадров высшей квалификации) по направлению подготовки 13.06.01

1 ТЕХНОЛОГИЯ АВТОМАТИЗИРОВАННОГО СТРУКТУРНО-ЛОГИЧЕСКОГО МОДЕЛИРОВАНИЯ В ПРОЕКТНЫХ РАСЧЕТАХ НАДЕЖНОСТИ СИСТЕМ Нозик А.А. ОАО "Специализированная инжиниринговая компания "СЕВЗАПМОНТАЖАВТОМАТИКА" Реферат.

Структурная надежность. Теория и практика Антонов А.В., Пляскин А.В., Татаев Х.Н. К ВОПРОСУ РАСЧЕТА НАДЕЖНОСТИ РЕЗЕРВИРОВАННЫХ СТРУКТУР С УЧЕТОМ СТАРЕНИЯ ЭЛЕМЕНТОВ В статье рассматривается вопрос расчета

АЛОРИМЫ АВОМАИЗИРОВАННОО СРУУРНО- ЛОИЧЕСОО МОДЕЛИРОВАНИЯ НАДЕЖНОСИ И БЕЗОПАСНОСИ СРУУРНО-СЛОЖНЫХ СИСЕМ Можаева ИА, Нозик АА, Струков АВ АО «СПИ СЗМА», С-Петербург, E-mal: fo@zmacom Аннотация Рассматриваются

ПРОГРАММНЫЙ КОМПЛЕКС АВТОМАТИЗИРОВАННОГО МОДЕЛИРОВАНИЯ И РАСЧЕТА НАДЕЖНОСТИ И БЕЗОПАСНОСТИ АСУТП НА СТАДИИ ПРОЕКТИРОВАНИЯ Нозик А.А., Можаев А.С., Потапычев С.Н., Скворцов М.С. Обоснован выбор и определены

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

Программа составлена на основе федерального государственного образовательного стандарта высшего образования (уровень подготовки кадров высшей квалификации) по направлению подготовки 27.06.01 «Управление

МИНИСТЕРСТВО ТРАНСПОРТА РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ УЛЬЯНОВСКОЕ ВЫСШЕЕ АВИАЦИОННОЕ УЧИЛИЩЕ ГРАЖДАНСКОЙ АВИАЦИИ (ИНСТИТУТ)

Лекция 3 3.1. Понятие о потоке отказов и восстановлений Восстанавливаемым называется объект, для которого восстановление работоспособного состояния после отказа предусмотрено в нормативнотехнической документации.

Тест по теме "Надежность ИС" #num 1 Безотказность - это: 1) свойство объекта непрерывно сохранять работоспособное состояние в течение всего времени работы; 2) свойство объекта непрерывно сохранять работоспособное

ИЗДАНИЕ ТРЕТЬЕ, ПЕРЕРАБОТАННОЕ И ДОПОЛНЕННОЕ МОСКВА «ЭНЕРГИЯ» 1977 Книга посвящена вопросам надежности автоматизированных систем. Описаны особенности оценки и расчета надежности. Значительное внимание

1. ЦЕЛИ ОСВОЕНИЯ ДИСЦИПЛИНЫ. Целями освоения дисциплины являются: ознакомление студентов с основными понятиями и определениями из теории надежности, показателями надежности систем электроснабжения (СЭС)

Федеральное агентство по образованию Томский государственный архитектурно-строительный университет НАДЕЖНОСТЬ ТЕХНИЧЕСКИХ СИСТЕМ И ТЕХНОГЕННЫЙ РИСК Методические указания для самостоятельной работы студентов

Программа составлена на основе федерального государственного образовательного стандарта высшего образования (уровень подготовки кадров высшей квалификации) по направлению подготовки 01.06.01 «Математика

Резервирование V. Текст лекции Введение Проблема анализа и обеспечения надежности связана со всеми этапами создания ЭВМ и всем периодом их практического использования в ведомстве МЧС. Комплекс мероприятий

К. Капур, Л. Ламберсон НАДЕЖНОСТЬ И ПРОЕКТИРОВАНИЕ СИСТЕМ Перевод с английского Е. Г. КОВАЛЕНКО под редакцией д-ра техн. наук, проф. И. А. УШАКОВА Издательство «Мир» Москва 1980 Оглавление Предисловие

ГОСТ 24.701-86 Группа П87 МЕЖГОСУДАРСТВЕННЫЙ СТАНДАРТ Единая система стандартов автоматизированных систем управления НАДЕЖНОСТЬ АВТОМАТИЗИРОВАННЫХ СИСТЕМ УПРАВЛЕНИЯ Основные положения Unified system of

Пример. Безотказность системы электроснабжения На рис.1 изображена исходная функциональная схема (граф связности с циклами) системы электроснабжения (СЭС) известной задачи 35 И.А.Рябинина , в которой

Правительство Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский университет "Высшая школа экономики"

1 ЛЕКЦИЯ 3. Задачи надёжности электроснабжения Теория надежности служит научной основой деятельности лабораторий, отделов, бюро и групп надежности на предприятиях, в проектных, научно-исследовательских

ОЦЕНИВАНИЕ, ПРОГНОЗИРОВАНИЕ И УПРАВЛЕНИЕ РЕСУРСНЫМИ ХАРАКТЕРИСТИКАМИ ОБОРУДОВАНИЯ АЭС Антонов А.В., Дагаев А.В. Обнинский институт атомной энергетики, Россия В настоящее время ряд энергоблоков атомных

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

2 ИСПОЛНИТЕЛИ Старший инженер-программист ООО «НТЦ СЗМА» Ведущий специалист АО «СПИК СЗМА» Ведущий программист ООО «НТЦ СЗМА» Можаева И.А. Струков А.В. Киселев А.В. 3 СОДЕРЖАНИЕ ВВЕДЕНИЕ... 5 1 ОПИСАНИЕ

Правительство Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования «Национальный исследовательский университет «Высшая школа экономики»

Министерство сельского хозяйства российской федерации ФГОУ ВПО «Московский государственный агроинженерный университет имени В.П. Горячкина» Факультет Заочного образования Кафедра «Ремонт и надежность машин»

ПРИМЕНЕНИЕ ПК АРБИТР ДЛЯ РЕШЕНИЯ ЗАДАЧ АВТОМАТИЗИРОВАННОГО АНАЛИЗА НАДЕЖНОСТИ СИСТЕМ СУДОВЫХ АТОМНЫХ ЭНЕРГЕТИЧЕСКИХ УСТАНОВОК И. В. Кудинович, Н. В. Шкляров, А. А. Нозик, А. В. Струков (Санкт-Петербург)

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

ЛЕКЦИЯ. Основные статистические характеристики показателей надёжности ЭТО Математический аппарат теории надёжности основывается главным образом на теоретико-вероятностных методах, поскольку сам процесс

Лекция 6 61 Марковские процессы в расчетах надежности нерезервированных восстанавливаемых объектов Основными особенностями восстанавливаемых систем по сравнению с невосстанавливаемыми являются большое

Министерство образования РБ Учреждение образования «Белорусский государственный университет информатики и радиоэлектроники» УТВЕРЖДАЮ Декан ФКП А.В. Будник РАБОЧАЯ ПРОГРАММА по учебной дисциплине «Надёжность

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ УХТИНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ КАФЕДРА ПРОМЫШЛЕННОЙ БЕЗОПАСНОСТИ И ОХРАНЫ ОКРУЖАЮЩЕЙ СРЕДЫ НАДЁЖНОСТЬ ТЕХНИЧЕСКИХ СИСТЕМ И ТЕХНОГЕННЫЙ РИСК Методические

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

Баринов С.А., Цехмистров А.В. 2,2 Слушатель Военной Академии материально-технического обеспечения имени генерала армии А.В. Хрулева, г. Санкт-Петербург РАСЧЕТ ПОКАЗАТЕЛЕЙ НАДЕЖНОСТИ ИЗДЕЛИЙ РАКЕТНО- АРТИЛЛЕРИЙСКОГО

2 Содержание Область применения... 5 2 Нормативные ссылки... 5 3 Термины и определения... 6 4 Обозначения и сокращения... 7 5 Цель и задачи оценки надежности... 8 6 Ответственность... 8 7 Общие положения...

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ВОЗДУШНОГО ТРАНСПОРТА ФЕДЕРАЛЬНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ГРАЖДАНСКОЙ АВИАЦИИ (МГТУ ГА)

1 Лекция 5. Показатели надежности ЭТО Показатели надежности характеризуют такие важнейшие свойства систем, как безотказность, живучесть, отказоустойчивость, ремонтопригодность, сохраняемость, долговечность

Анализ моделей прогнозирования надежности программных средств Хунов Т. Х. НИУ Высшая школа экономики МИЭМ [email protected] Аннотация В данной работе приведен анализ моделей прогнозирования надежности программных

Цели и задачи дисциплины Дисциплина «Надежность транспортных средств специального назначения» является дисциплиной профессионального цикла при подготовке инженеров по специальности «Транспортные средства

Профиль: «Математические и инструментальные методы экономики» Раздел I. Основания теории вероятностей и математической статистики 1. Статистическое и классическое определение вероятности. Понятие случайного

Уфа: УГАТУ, 202 Т. 6, 8 (53. С. 67 72 В. Е. Гвоздев, М. А. Абдрафиков СТАТИСТИЧЕСКИЕ СВОЙСТВА ДОВЕРИТЕЛЬНЫХ ОЦЕНОК ГРАНИЧНЫХ ЗНАЧЕНИЙ ХАРАКТЕРИСТИК НАДЕЖНОСТИ УДК 68.5 Статья посвящена вопросам доверительного

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

ФЕДЕРАЛЬНОЕ АГЕНСТВО ЖЕЛЕЗНОДОРОЖНОГО ТРАНСПОРТА ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ»

УДК 004.94, 519.2 А.Ю. Русин, М. Абдулхамед (Тверской государственный технический университет; e-mail: [email protected]) ОБРАБОТКА ИНФОРМАЦИИ В СИСТЕМЕ ИСПЫТАНИЙ ПРОМЫШЛЕННОГО ОБОРУДОВАНИЯ НА НАДЁЖНОСТЬ

Лекция 8 8.1. Законы распределения показателей надежности Отказы в системах железнодорожной автоматики и телемеханики возникают под воздействием разнообразных факторов. Поскольку каждый фактор в свою очередь

УДК 59.873 Алгоритм и методика анализа надежности боевой машины Карасев В. О., студент Россия, 05005, г. Москва, МГТУ им. Н.Э. Баумана, кафедра «Информатика и системы управления» Научный руководитель:

Лекция 4. Основные количественные показатели надежности технических систем Цель: Рассмотреть основные количественные показатель надежности Время: 4 часа. Вопросы: 1. Показатели оценки свойств технических

УДК 681.3 А.И. Рыженко, Е.И. Рыженко, Д.В. Колесниченко Определение надежности невосстанавливаемых резервированных технических изделий Национальный аэрокосмический университет им. Н.Е. Жуковского «ХАИ»

7627 УДК 62-192 К ВОПРОСУ ОЦЕНКИ РЕСУРСА ТЕХНИЧЕСКИХ СИСТЕМ Н.В. Лубков Институт проблем управления им. В.А. Трапезникова РАН Россия, 117997, Москва, Профсоюзная ул., 65 E-mail: [email protected] Ключевые слова:

1 Программа составлена на основе федерального государственного образовательного стандарта высшего образования (уровень подготовки кадров высшей квалификации) по направлению подготовки 13.06.01 «Электро-

Структурная надежность. Теория и практика Ткачев О.А. АНАЛИЗ НАДЕЖНОСТИ СЕТЕЙ, СОСТОЯЩИХ ИЗ ИДЕНТИЧНЫХ ЭЛЕМЕНТОВ Предлагаются аналитические модели, которые позволяют получить выражения для определения

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

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

Размещено на 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

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

Расчет надежности технических систем с учетом восстановления

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

Факторы, влияющие на надежность технических систем

Надежность комплекса технических средств

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

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

Для количественной оценки надежности комплекса ТС применяются показатели надежности, рассмотренные в п. 1.3. и 1.6.

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

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

К конструктивным факторам относятся:

· выбор структурной и функциональной схем, способов резервирования и контроля;

· определение материалов и комплектующих элементов;

· выбор режимов и условий работы элементов в системе;

· назначение требований к допускам на технические характеристики элементов;

· выбор уставок и защит на технологические параметры установки;

· учет психофизиологических особенностей операторов;

· разработка эксплуатационной документации и др.

К производственным факторам относятся:

· входной контроль качества материалов и элементов, получаемых от предприятий- поставщиков;

· организация технологического процесса изготовления оборудования;

· контроль качества продукции на всех этапах технологического процесса;

· квалификация изготовителей;

· обеспечение качества и контроль монтажа и наладки оборудования систем;

· условия работы на производстве и др.

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



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

Под субъективными эксплуатационными факторами понимается:

· квалификация и обученность обслуживающего персонала;

· организация и качество технического обслуживания и регламентных работ;

· методы и способы организации эксплуатации систем;

· организация сбора и анализа сведений об эксплуатационной надежности ТС.

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

а) определение критериев и видов отказа системы и состава рассчитываемых показателей надежности;

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

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

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

д) подбор данных по показателям надежности элементов;

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

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

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

Рассмотренные показатели применяются как при создании систем, так и при их эксплуатации.

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

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

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


Рис. 2.2 Соединение элементов системы:

а - последовательное (основное); б - параллельное (резервное)

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

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

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

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

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

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

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

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

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

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

При параллельном соединении элементов и при условии, что для работы системы достаточно работы одного из включенных параллельно элементов, отказ системы является совместным событием, имеющим место при отказе всех параллельно включенных элементов. Если параллельно включены т элементов (см. рис. 2.2, б) и вероятность отказа каждого q j (t ) = 1-p j (t ), то вероятность отказа этой системы

. (2.2)

Если структурная схема надежности системы состоит из последовательно и параллельно соединенных элементов, то расчет ее надежности может быть произведен с использованием (2.1), (2.2).

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

где .

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

; ; ; (2.4)

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

Если все элементы равнонадежны и , то

; .

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

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

Существуют несколько разновидностей классического метода расчета надежности систем со сложной структурой, часть из которых будет рассмотрена ниже применительно к анализу надежности мостиковой схемы, изображенной на рис. 2.3. (Эта схема не сводится к последовательно-параллельному соединению элементов.) Для всех элементов схемы известны вероятности безотказной работы р 1 , р 2 , р 3 , р 4 , p 5 и соответствующие им вероятности отказа типа «обрыв» q 1 , q 2 , q 3 , q 4 , q 5 . Необходимо определить вероятность наличия цепи между точками а и b схемы.

Рис. 2.3 Мостиковая схема соединения элементов

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

; (2.6)

вероятность отказа

, (2.7)

где т - общее число работоспособных состояний, в каждом j -м из которых число исправных элементов равно l , а вышедших из строя - k .

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

Метод разложения относительно особого элемента. Этот метод основан на использовании формулы полной вероятности. В сложной системе выделяется особый элемент, все возможные состояния H i которого образуют полную группу, . Если анализируемое состояние системы А ,то его вероятность

. (2.8)

Второй сомножитель в (2.8) определяет вероятность состояния А при условии, что особый элемент находится в состоянии H i . Рассмотрение H i -го состояния особого элемента как безусловного позволяет упростить структурную схему надежности и свести ее к последовательно-параллельному соединению элементов.

Так, в рассматриваемой мостиковой схеме выделение элемента 5 в качестве особого с двумя возможными состояниями (1 - наличие и 2 -отсутствие цепи) Р {Н 1 }=р 5 ; Р {Н 2 }=q 5 позволяет от структурной схемы, представленной на рис. 2.3, перейти при безусловно исправном состоянии элемента 5 к схеме, представленной на рис. 2.4, а. При отказе элемента 5 структурная схема имеет вид, представленный на рис. 2.4, б. Если состояние А - наличие цепи между а и b, то в соответствии с (2.1) и (2.2) имеем:

Рис. 2.4 Структурные схемы мостикового соединения элементов, соответствующих: а - наличию цепи в элементе 5; б - отсутствию цепи в элементе 5

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

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

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

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

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

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

Рис. 2.5 Набор минимальных путей

Рис. 2.6 Набор минимальных сечений

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

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

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

Рис. 2.7Размеченный граф состояний восстанавливаемой системы

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

В качестве примера проанализируем надежность системы защиты, которая может находиться в трех состояниях: работоспособном, ложного сраба­тывания и несрабатывания, обозначенных на рис. 2.7 соответственно цифра­ми 1, 2, 3. За интервал времени t свероятностью р 11 система сохраняет ра­ботоспособное состояние либо с вероятностями р 12 и p 13 переходит в нерабо­тоспособные состояния 2, 3. За этот же интервал времени после ложного срабатывания система с вероятностью p 21 восстанавливается и возвращается в работоспособное состояние 1. За интервал t система может сохранить со­стояние 2, вероятность этого события составляет р 22 . Аналогично вероятно­сти р 33 , р 31 характеризуют качество восстановления системы после ее несра­батывания. При восстановлении всех отказавших систем р 22 =р 33 =0, a р 21 =p 31 =1.

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

(2.9)

После любого числа интервалов p 1 (i)+ р 2 (i)+ р 3 (i) = 1 . Для решения систе­мы уравнений (2.9) необходимо задать начальное распределение вероятности между состояниями системы. При работоспособном состоянии системы в на­чальный момент времени Р 1 (0) =1 , а Р 2 (0) = Р 3 (0) = 0 .

Вероятность нахождения системы после i интервалов в состоянии j рассчи­тывается по формуле:

Р j (i)=М(0)М i D j , (2.10)

где M(0)=||P 1 (0)P 2 (0)P 3 (0)|| - вектор-строка начального состояния системы; М i -матрица переходов; D j -вектор-столбец анализируемого состояния. Онсодержит нули и одну единицу, которая стоит на месте анализируемого состояния. Так, если после i интервалов определяется вероятность нахождения системы в состоянии ложного срабатывания, то

Матрица переходов составляется непосредственно по графу состояний. Для рассматриваемого примера матрица переходов имеет следующий вид:

. (2.11)

Матрица переходов является квадратной: число строк и столбцов равно числу состояний системы. Для записи матрицы удобно воспользо­ваться следующим приемом. Если вне матрицы обозначить через 1i, 2i, 3i со­стояния системы после i интервалов, а 1(i-1), 2(i-1), 3(i-1) ее предшест­вующие состояния, то в матрицу записываются вероятности перехода из соответствующего предшествующего в то или иное текущее. Так, если предшествующее состояние 2(i-1) , а текущее 1i , то в пересечении соответствующей строки и столбца записывается р 21 . Таким образом, строки матрицы переходов определяют вероятности со­хранения того или иного состояния и выхода из него в другие состояния сис­темы, сумма этих вероятностей равна единице.

Столбцы матрицы представляют собой коэффициенты уравнений (2.9) при P j (i-1) . Эти коэффициенты определяют вероятности прихода системы в анализируемое состояние из всех возможных, включая анализируемое. При пе­ремножении матриц их перестановка в (2.10) не допускается.

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

(2.12)

где Р 1 , Р 2 , Р 3 – предельные (финальные) вероятности пребывания системы в соответствующих состояниях.

Поскольку уравнения (2.12) являются линейно зависимыми, то для определения Р 1 Р 2 , P 3 используется уравнение P 1 + Р 2 + P 3 =1 и два наиболее простых уравнения (2.12).

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

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

Рассмотрим кратко методику определения вероятностей состояний Марковского процесса с непрерывным временем.

Пусть система может находиться в некоторых состояниях, число которых конечно (равно n ). Номера состояний: 0, 1, 2, 3,…,n .

Если система может находиться только в двух со­стояниях – работоспособном и восстановления, то снижение вероятности одного состояния приводит к соответствующему увеличению вероятности другого со­стояния, поскольку для любого момента времени Po(t)+P 1 (t)=1. На рис. 2.8, а представлен ориентированный граф переходов системы для рассматриваемой ситуации. Здесь состояние 0 соответствует работоспособному, а состояние 1 – неработоспособному (восстановления). Переходы системы из работоспособного состояния (0) в неработоспособное (1) происходит под действием потока отказов с интенсивностью отказов , а переход системы из неработоспособного (1) в работоспособное (0) – под действием потока восстановлений, с интенсивностью восстановления . Переход системы из состояния 0в состояние 1 происходит в момент наступления первого отказа.

Таким обра­зом, вероятности нахождения систем в момент t+dt в каждом из рассматриваемых состояний связаны с соответствующими вероятностями:

(2.13)

Сопоставление (2.13) с системой уравнений (2.9) показывает, что в Марковских системах с непрерывным временем соответствуют ве­роятностям р 11 , p 12 , p 22 , p 21 используя первые, можно составить матрицу пере­ходов, подобную (2.11).

Рис. 2.8 Граф состояний восстанавливаемой системы:

а – с двумя состояниями; б - произвольный узел графа

Поскольку /dt=dPi(t)/dt, то вероятность нахождения системы с непрерывным временем в каждом из состояний определяется следующей сис­темой дифференциальных уравнений первого порядка, называемой системой Колмогорова-Чепмена:

(2.14)

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

При записи системы дифференциальных уравнений предварительно составляется перечень возможных состояний системы и соответствующий ему ориентированный граф состояний, подобный представленному на рис. 2.8. Каждая из вершин соответствует одному из состояний системы, а ориентация ребер определяется направлением перехода. Так, граф состояний рассмотрен­ной выше системы с двумя состояниями обычно изображается в виде, пред­ставленном на рис. 2.8, а. С помощью его и системы дифференциальных урав­нений 2.14 легко проверяется общий принцип записи дифференциального уравнения для произвольной вершины i (рис. 2.8, б), в которую система может прийти из т вершин и из которой переходит в одну и п вершин:

(2.13)

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

Первая сумма в правой части формулы (2.13) распространяется на те значения j , для которых возможен непосредственный переход из состояния отказав работоспособное состояние (т. е. для которых ), а вторая – на те значения j , для которых возможен непосредственный переход из работоспособного состоянияв состояние отказа (т. е. ).

Систему дифференциальных уравнений (2.13) решают при начальных условиях, задающих вероятности состояний в начальный момент при t=0 :

причем для любого момента времени t выполняется нормировочное условие:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1. Неправильная постановка задачи.

2. Неверный алгоритм.

3. Ошибка анализа (неполный учет ситуаций, которые могут возникнуть; логические ошибки).

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

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

6. Ошибки при выполнении операций (слишком большое число, деление на ноль, извлечение квадратного корня из отрицательного числа и т. п.).

7. Ошибки в данных (неудачное определение возможного диапазона изменения данных).

8. Опечатки (перепутаны близкие по написанию символы, например, цифра 1 и буквы I, l ).

9. Ошибки ввода-вывода (неверное считывание входных данных, неверное задание форматов данных).

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

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

Пригодностью для применения;

Точностью;

Защищенностью;

Способностью к взаимодействию;

Согласованностью со стандартами и правилами проектирования.

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

Уровнем завершенности (отсутствия ошибок);

Устойчивостью к ошибкам;

Перезапускаемостью.

3. Применимость описывается:

Понятностью;

Обучаемостью;

Простотой использования.

Ресурсной избыточностью;

Временной избыточностью.

5. Сопровождаемость детализируется:

Удобством для анализа;

Изменяемостью;

Стабильностью;

Тестируемостью.

6. Переносимость предлагается отражать:

Адаптируемостью;

Структурированностью;

Замещаемостью;

Внедряемостью.

К показателям надежности ПО можно отнести следующие показатели.

1. Вероятность ошибки в ПО

(2.16)

где n – число возможных подмножеств входных данных; p i - вероятность выбора i –го подмножества; y i - динамическая переменная, y i =0, если выходной результат верен для i –го подмножества; y i =1, если выходной результат неверен.

Cтатистическое определение вероятности ошибки

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

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

(2.18)

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

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

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

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

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

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

К внутренним дестабилизирующим факторам относятся следующие дефекты ПО:

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

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

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

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

Внешними дестабилизирующими факторами являются:

Ошибки оперативного и обслуживающего персонала в процессе эксплуатации ПО;

Искажения в каналах телекоммуникации информации, поступающей от внешних источников и передаваемой потребителям, а также недопустимые для конкретной АС характеристики потоков внешней информации;

Сбои и отказы в аппаратуре вычислительных средств;

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

Разрабатываемая система в конечном варианте будет представлять собой 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 - Зависимость вероятности безотказной работы программной части системы от времени (в часах)

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