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

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

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

ЛЕКЦИЯ 5

 

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

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

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

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

 

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

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

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

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

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

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

Конкретизируем определение времени восстановления ТС, для чего рассмотрим его основные составляющие. Время восстановления всегда включает в себя время ТВ1 поиска причины отказа и время Тв2 его устранения (рис. 2.5,а). Оперативное время восстановления

. (2.2)

При эксплуатации ТС в (2.2) могут быть добавлены времена:

– ожидание от момента обнаружения отказа до начала поиска его причины (это время может существенно превышать Тв1 и Тв2 на предприятиях, где технологическое оборудование работает круглосуточно, а ремонтный персонал – в одну смену);

 

 

Рис. 2.5 Примеры структуры времени восстановления

 

Тв4 – обеспечение персонала инструментами, материалами, запасными частями;

ТВ5 – ожидание от момента окончания устранения отказа до момента включения ТС;

Тв6 и ТВ7 – демонтаж и монтаж ТС.

На рис. 2.5,б приведена структура времени восстановления, проведенного непосредственно на месте установки отказавшего ТС без его замены. Общее время восстановления

.

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

,

где ТВ8длительность ожидания ремонта в мастерской; Тв9время устранения отказа в мастерской.

Показатели надежности ТС задаются из числа перечисленных в п. 1.2 и 1.5. Как правило, эти показатели устанавливаются при следующих условиях: температура окружающего воздуха (20±10) °С; относительная влажность 30 - 80%; давление 630 - 800 мм рт. ст., отклонение напряжения питания сети +10 – –15%. Время t1, на котором задается вероятность безотказной работы, обычно принимается равным 2000 ч, за исключением ТС, предназначенных для атомных станций, где t1 = 8000 ч. Отметим, что задание показателей безотказности и долговечности для ТС, входящих в состав ГСП, является обязательным.

 

 

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

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

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

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

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

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

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

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

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

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

К задачам теории и анализа надежности сложных ПС можно отнести следующие:

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

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

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

- исследование дефектов и ошибок, динамики их изменения при отладке и сопровождении, а также влияния на показатели надежности ПС;

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

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

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

Классификация отказов ПС:

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

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

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

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

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

Свойства программ:

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

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

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

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

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

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

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

- точностью;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1. Объекты уязвимости:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- создавать программные модули и функциональные компоненты высокого гарантированного качества;

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

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

- удостоверять достигнутые качество и надежность функционирования ПС в процессе их испытаний и сертификации перед передачей в регулярную эксплуатацию;

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

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

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

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