НАДЕЖНОСТЬ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ АСУТП - Надежность систем автоматизации

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

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

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

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

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

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

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

Рассмотренное определение надежности ПО базируется на понятии отказ программы, под которым понимается событие, заключающееся в появлении "неразумного" результата у Y при х Х и нормальной работе УВМ и ТСА.

Отказы ПО делятся на случайные и неслучайные.

Неслучайные отказы ПО обусловлены действием так называемых компьютерных вирусов.

Случайные отказы ПО наблюдаются в случайные моменты времени работы УВМ или процессора. По своим последствиям эти отказы классифицируются на Случайные сбои программ и устойчивые отказы ПО.

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

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

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

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

Различают ошибки первичного и вторичного типа.

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

Ошибки вторичного типа во многом являются следствием первичных ошибок программ. К ним относят ошибки:

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

Логические (пропуск логических условий, неверные краевые условия и др.)

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

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

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

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

    - Отказ ПО не приводит к разрушению или поломке программного элемента. Отказы ПО не связаны с физическим износом элемента (в частности носителя программ) . - Отказ ПО не коррелирован с процессорным и, тем более, астрономическим временем (с процессорным временем или числом прогонов ПО программ пользователем). - При длительной эксплуатации ПО все его ошибки могут быть устранены и программы становятся абсолютно надежными. Если обозначить через N(t) число не выявленных ошибок ПО в произвольный момент процессорного времени t, то формально имеет место соотношение lim N(t) = 0, справедливое при условии, что в процессе восстановления программ в них не вносятся новые ошибки.

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

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

Основные показатели надежности ПО:

    1. Функция ненадежности или отказа ПО Q(t) = Вер {того, что отказ ПО появится до момента времени t}; 2. Функция надежности ПО P(t) = Вер {того, что отказ ПО появится после момента времени t); 3. Интенсивность отказов ПО (t) = dQ/dt: 4. Средняя наработка на отказ ПО: t = t f(t)dt = P(t)dt

Программное обеспечение АСУТП состоит из большого числа программ, подпрограмм и модулей, находящихся под управлением операционной системы реального времени или программы-диспетчера. Выполнение каждой из этих программ осуществляется последовательно во времени на одном и том же процессоре. Если эти программы имеют взаимные информационные связи или предназначены для получения одного результата y (вычисление одной функции), то в надежностном отношении такой программный комплекс представляет собой простую систему без избыточности и вероятность его безотказной работы равна произведению вероятностей безотказной работы каждой i-ой программы:

Где m - общее число программ.

Надежность такого ПО определяется надежностью отказов самой "ненадежной" программы, имеющей наибольшее значение, i=1,m.

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

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

Применительно к ПО АСУТП различают три вида резервирования:

    1. временное; 2. информационное; 3. программное.

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

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

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

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

Рекомендуемая литература для дополнительного чтения:

    1. Балакирев В. С., Бадеников В. Я. Надежность технических и программных средств автоматизации. Учеб. пособие для ВУЗов. - Ангарск.: Ангарский технологический институт, 1994, - 64 с. 2. Ястребенецкий М. А., Иванова Г. М. Надежность АСУТП. Учеб. пособие для ВУЗов. - М.: Энергоатомиздат, 1989. - 264 с. 3. Надежность АСУ: Учеб. пособие для ВУЗов/ Под ред. Я. А. Хетагурова. - М.: Высшая школа, 1979. - 287 с. 4. Курочкин Ю. А. Надежность и диагностирование цифровых устройств и систем. - М.: Энергоатомиздат, 1993. - 240 с. 5. Шураков В. В. Надежность программного обеспечения систем обработки данных. Учебник для ВУЗов. - М.: Финансы и статистика, 1987. - 272 с.

Похожие статьи




НАДЕЖНОСТЬ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ АСУТП - Надежность систем автоматизации

Предыдущая | Следующая