Logo GenDocs.ru

Поиск по сайту:  

Загрузка...

Лекции - Надежность информационных систем - файл 1.doc


Лекции - Надежность информационных систем
скачать (925 kb.)

Доступные файлы (1):

1.doc925kb.17.11.2011 17:20скачать

содержание
Загрузка...

1.doc

1   2   3   4   5   6
Реклама MarketGid:
Загрузка...
Основные выводы использования корректирующих кодов
Анализируя применение кодов, контролирующих ошибки, и корректирующих кодов в информационных системах можно сделать следующие выводы:

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

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

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

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

 

^ НАДЕЖНОСТЬ ПРОГРАММНЫХ КОМПЛЕКСОВ
Модели надежности программных комплексов
Для прогнозирования надёжности используемого программного комплекса могут применяться различные модели надёжности. В моделях надёжности программного комплекса используется информация о числе ошибок, вызывающих отказы, устранённые в процессе разработки программного комплекса. На основе такой информации определяются параметры модели, которая может затем использоваться для прогнозирования ожидаемого числа ошибок (отказов программного комплекса) или некоторого другого показателя надёжности. Показателем надёжности программного комплекса может служить вероятность отсутствия обнаружения программных ошибок в течение определённого промежутка времени при эксплуатации программы в расчётном режиме в информационной системе.

Одна из моделей основана на следующих допущениях:

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

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

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

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

На основе этих допущений получаем:

,                                          (5.1)

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

 – число остаточных ошибок в момент времени t, отнесённое к общему числу команд I;

 – отношение числа ошибок E0, имеющихся в программе в момент t = 0, к общему числу команд на машинном языке I, т. е. ;

 – суммарное число ошибок, исправленных к моменту времени t, отнесённое к общему числу команд I.

Используя последнее допущение, имеем:

,                                           (5.2)

где  t время работы системы;

 – интенсивность отказов в течение интервалов времени t;

Ks – коэффициент пропорциональности,

Определив с помощью формулы (5.2) интенсивность отказов программы (частоту появления ошибок), найдём выражение для вероятности безошибочной работы:

.                    (5.3)

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

.                                     (5.4)

Для оценки параметров модели подставим соотношение (5.1) в формулу (5.4), получим следующие выражение для среднего времени безошибочной работы:

.                     (5.5)

Выражение (5.5) содержит два неизвестных параметра – Кs и Ео, которые можно оценить, используя метод согласования моментов. Рассматривая два периода откладки программы t1 и t2, такие, что t1 < t2, получаем:

,                                        (5.6)

,                                       (5.7)

где  t1 и t2 – продолжительность работы системы;

m1 и m2 – число ошибок в программном обеспечении, обнаруженных соответственно в периодах t1 и t2.

Из отношений (5.6) и (5.7) следует, что

,                                   (5.8)

где  ,

T0i – среднее время безошибочной работы, соответствующее периоду откладки программы и определяемое как T0i = ti / mi.

Заменяя отношение  на T1 в формуле (5.6), найдем Ks:

.                                     (5.9)

Другим методом оценивания параметров E0 и Ks является использование оценок максимального правдоподобия.

 

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

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

,                             (5.10)

где  – коэффициент пропорциональности;

t – интервал времени между i-й и (i-1)-й обнаруженными ошибками.

С помощью формулы (5.10) можно найти вероятность безошибочной работы:

,                          (5.11)

и среднее время безошибочной работы:

. (5.12)
Третья модель основана на допущении о том, что частота появления ошибок пропорциональна числу остаточных ошибок и времени отладки программы, т. е.

,                                   (5.13)

где t1 промежуток времени между(i-1)-й и i-й ошибками.

Вероятность безошибочной работы равна:

.                      (5.14)

Среднее время безошибочной работы определяется по формуле:

.  (5.15)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- самоустраняющиеся отказы или сбои в вычислительной системе;

- невыявленные ошибки в комплексе программ.

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

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

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

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

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

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

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

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

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

Невыявленные ошибки являются основной причиной ненадёжности функционирования. В процессе отладки основная часть ошибок в программах обнаруживается и устраняется, но есть риск пропуска нескольких ошибок. Любая отладка «может показать наличие ошибок, но не может показать их отсутствие». В процессе тестирования и отладки программ практически невозможно выполнение абсолютно полных проверок. В результате в программах всегда существует некоторое количество невыявленных ошибок.
^ Обеспечение надежности и повышение качества программ
Моделирование является лишь одним аспектом обеспечения надёжности программных комплексов и имеет цель – прогнозирование числа ошибок, остающихся в системе, на основе использования статической информации о процессе обнаружения и устранения ошибок. Не менее важное значение имеют две другие области обеспечения надёжности программных средств, безошибочное проектирование и испытания, ориентированные на обеспечение надёжности.

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

Идея структурного (модульного) программирования базируется на стремлении упорядочить сложные комплексы программ и их проектирование. Строгое определение термина «структурное программирование» не существует. Имеется несколько определений структурного (модульного) программирования. Чаще всего оно определяется как программирование без использования операторов GO TO, с применением нисходящего метода разработки программ и с использованием принципа модульного конструирования программ. Указанные три приёма повышают надёжность, удобочитаемость и удобство обслуживания программного обеспечения.

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

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

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

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

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

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

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

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

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

- двоичные, представляющие собой последовательность бит;

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

Из простых переменных по заданным правилам упорядочения образуются массивы, размеры которых задаются списками граничных пар. Структура массивов и правила упорядочения переменных различны и определяются следующими факторами:

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

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

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

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

- типом реальной памяти, используемой для хранения массива.

Для повышения надёжности комплексов программ целесообразно использовать простейшие структуры массивов. При работе с массивами наибольшие затраты производительности ЭВМ связаны с поиском простых переменных или частных массивов, признаки которых удовлетворяют некоторому условию.
^ Тестирование и испытание программ
Вполне вероятно, что даже при использовании самых лучших способов программирования, программные комплексы всё же будут содержать те или иные ошибки. Целью испытаний программы является подтверждение того, что она соответствует проектным замыслам. Любая корректировка программы может быть сведена к трём типовым операциям:

- исключение части или всей подпрограммы;

- вставка компонент или новой целой подпрограммы на имеющееся свободное место;

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

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

Средства проверки состоят из двух основных модулей: инструментального модуля и анализатора. Исходная программа испытуемого модуля вначале поступает в инструментальный модуль, который снабжает проверяемый модуль дополнительными операторами. Эти операторы называются датчиками и счётчиками, а сам процесс введения указанных операторов носит название инструментального оснащения. В процессе инструментального оснащения исходной программы её функции должны оставаться неизменными, т. е. оператор-датчик и оператор-счётчик не должны менять функционального назначения программы. Снабжёнными дополнительными операторами блок программы транслируется обычным способом, а полученная выходная программа прогоняется с использованием её тестовых данных. При этом на выходе программы, помимо обычных результатов, получают также инструментальный файл данных. Затем этот инструментальный файл данных и файл данных исходной программы, снабжённый дополнительными операторами, вводятся в модуль анализатора, который выдаёт на выходе сведения о поведении испытуемого модуля в процессе его выполнения. В каждом таком отсчёте содержится информация о числе случаев появления каждого оператора, числе случаев выбора конкретного маршрута в каждой точке ветвления и о времени, необходимом для выполнения каждого оператора. Подобная информация используется при проверке структуры программы; она даёт уверенность в правильности логики и кода программы, гарантирует, что каждый оператор и каждое ответвление программы выполняется хотя бы один раз. Можно также обеспечить вызов хотя бы один раз каждой подпрограммы. Длительность испытаний зависит от конфигурации системы
и состава испытаний, но типичным можно считать период, включая испытания в условиях пользователя от 1 до 6 месяцев, иногда и более.
^ Критерии надежности программных комплексов
При разработке технических требований на надёжность программных комплексов следует принимать во внимание следующие критерии:

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

- обслуживаемость системы – влияние ошибок программного комплекса на обслуживаемость системы;

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

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

Новое программное обеспечение может требовать в первое время менее жёстких критериев и большего времени для его совершенствования.

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

Разбросы, вызываемые различием в условиях применения и использования.

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

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

 

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

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

Чтобы убедиться, что объект исправен, то есть, в нем нет ни одной неисправности, проводят проверки исправности. Исправленный объект всегда работоспособен и функционирует правильно.

Техническое диагностирование с целью определения мест, причин и вида дефектов объекта называется поиском дефектов.

Техническое диагностирование осуществляется с помощью технических средств.

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

Обобщенная схема функционального диагностирования (рис. 6.1).

 

                            Внешнее воздействие       Реакция

 Рис. 6.1

 

Обобщенная схема тестового диагностирования (рис. 6.2).

 



Тест Реакция 

Рис. 6.2
1   2   3   4   5   6



Скачать файл (925 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru