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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

 
 

 

 


а) б)

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

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

 

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

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

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

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

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

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

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

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

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

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

. (2.1)

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

. (2.2)

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

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

, (2.3)

где .

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

; ; ; (2.4)

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

. (2.5)

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

; .

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

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

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

 

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

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

; (2.6)

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

, (2.7)

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

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

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

. (2.8)

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

Так, в рассматриваемой мостиковой схеме выделение элемента 5 в качестве особого с двумя возможными состояниями (1 — наличие и 2 —отсутствие цепи) Р{Н1}5; Р{Н2}=q5 позволяет от структурной схемы, представленной на рис. 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 Набор минимальных сечений

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

 

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

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

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

 

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

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

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

 

(2.9)

 

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

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

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

где M(0)=||P1(0)P2(0)P3(0)|| — вектор-строка начального состояния системы; Мi—матрица переходов; Dj —вектор-столбец анализируемого состояния. Онсодержит нули и одну единицу, которая стоит на месте анализируемого состояния. Так, если после i интервалов определяется вероятность нахождения системы в состоянии ложного срабатывания, то

.

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

. (2.11)

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

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

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

(2.12)

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

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

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

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

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

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

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

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

(2.13)

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

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

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

 

Поскольку [Pi(t+dt)-Pi(t)]/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:

(2.14)

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

. (2.15)

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- точностью;

- защищенностью;

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

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

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

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

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

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

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

- понятностью;

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

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

4. Эффективность рекомендуется характеризовать:

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

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

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

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

- изменяемостью;

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

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

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

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

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

- замещаемостью;

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

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

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

(2.16)

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

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

(2.17)

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

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

(2.18)

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

3. Вероятность программного сбоя в интервале от 0 до t:

(2.19)

4. Плотность распределения вероятности сбоя:

(2.20)

5. Функция риска (аналогичная функции интенсивности отказов ):

(2.21)

Решая это дифференциальное уравнение относительно R(t) при начальном условии R(0)=1, получим

. (2.22)

6. Среднее время между программными сбоями

. (2.23)

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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