Предметом изучения теории надежности комплексов программ softWare reliability является

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

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

Что такое надежность

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

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

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

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

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

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

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

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

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

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

При эксплуатации ТС в (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 ч. Отметим, что задание показателей безотказности и долговечности для ТС, входящих в состав ГСП, является обязательным.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:
Как создать программу для iOs и Android

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник: 5rik.ru

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

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

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

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

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

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

В результате комплекс программ не соответствует требованиям функциональной пригодности и работоспособности. В учебном пособии Благодатских, В.А. др. «Стандартизация разработки программных средств» приведен пример, который опубликован в статье Юрия Батурина в журнале «Новое время» [1, стр. 36].

Читайте также:
Программа для вышивальной машины husqvarna

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

Он был назначен Организацией по осуществлению Стратегической Оборонной Инициативы (СОИ) членом консультативного комитета по программированию управления боевыми операциями. «Мне обещали 1000 долларов в день плюс накладные расходы». Но, ознакомившись подробнее с тем, чего от него ждут, Д. Парнас отклонил сделанное ему предложение, одновременно представив восемь технических документов, которые объясняли, почему программа не сможет работать так, как требуется.

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

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

– не для всех видов программ применимы понятия и методы теории надежности;

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

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

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

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

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

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

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

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

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

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

– исследование дефектов и ошибок, динамики их изменения при отладке и сопровождении, а также влияния на показатели надежности программных средств;

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

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

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

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

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

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

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

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

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

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

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:

Источник: studopedia.ru

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

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

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

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

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

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

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

Читайте также:
Как узнать куда программа отправляет данные

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ЛЕКЦИЯ 8

Источник: megaobuchalka.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru