Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Гл-5.doc
Скачиваний:
42
Добавлен:
05.11.2018
Размер:
222.21 Кб
Скачать

5. Надежность программных комплексов

5.1. Проблемы надежности программных комплексов

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

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

- разработка правильных программ;

- проверка программ с целью исключения ошибок;

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

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]