Главная страница

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


Скачать 16.41 Kb.
НазваниеЛекция 9. Основные факторы, влияющие на надежность функционирования комплекса программ. Обеспечение надежности и повышение качества программ Одни и те же типы сбоев и отказов при исполнении комплексов программ могут быть вызваны различными факторами,
Дата05.06.2022
Размер16.41 Kb.
Формат файлаdocx
Имя файлаЛекция Основные факторы, влияющие на надежность функционировани.docx
ТипЛекция
#570601

Лекция №9. Основные факторы, влияющие на надежность функционирования комплекса программ. Обеспечение надежности и повышение качества программ Одни и те же типы сбоев и отказов при исполнении комплексов программ могут быть вызваны различными факторами, которые можно разделить на три группы. В первую группу входят факторы, непосредственно вызывающие сбой или отказ при исполнении программы, причинами которых могут быть:  искажение исходной информации, поступающей от внешних абонентов, в том числе, и ошибочные действия операторов;  самоустраняющиеся отказы или сбои в вычислительной системе;  невыявленные ошибки в комплексе программ. Ко второй группе факторов относятся архитектура комплекса программ и структурное построение его компонент. Структура программ определяет возможность расширения последствий искажений информации или вычислительного процесса, влияет на вероятность превращения искажения в отказ и на время восстановления после отказа. Третья группа факторов влияет на длительность восстановления и глубину последствий от возникающих отказов. В эту группу входят факторы, определяющие качество контроля вычислительного процесса и обрабатываемых данных, запаздывание в обнаружении искажений, качество классификации искажений и длительность проявлений их последствий. Они определяют длительность восстановления, время наработки на отказ и способствуют быстрой локализации искажений. Искажения исходной информации, в большинстве случаев, не влияют на надежность выполнения программ. Причинами искажений данных, поступающих от внешних абонентов, могут быть:  искажение данных на первичных носителях информации;  сбои и частичные отказы в аппаратуре ввода данных с первичных носителей информации;  шумы и сбои в каналах связи при передаче или приѐме телекодовой информации;  потери или искажения сообщений в ограниченных буферных накопителях вычислительной системы;  ошибки в документах, используемых для подготовки данных, вводимых в вычислительную систему. Самоустраняющиеся отказы и сбои в аппаратуре вычислительных систем являются фактором, существенно влияющим на надѐжность функционирования комплексов программ. Значительно чаще происходят сбои или трудно обнаруживаемые кратковременные отказы. Большинство из них выявляется и устраняется средствами аппаратурного контроля и не влияет на исполнение программ. Однако, некоторая часть аппаратурных сбоев может приводить к искажениям переменных. Причинами таких сбоев и отказов являются преимущественно внешние воздействия на аппаратуру, влияющие на нарушение контактов и пропадание сигналов, или индустриальные электрические помехи. Чаще происходят сбои, которые не удаѐтся обнаружить и зафиксировать при функционировании комплекса программ в процессе нормальной обработки информации и управления. Такие сбои проявляются в случайные промежутки времени, и практически невозможно добиться их повторяемости. Невыявленные ошибки являются основной причиной ненадѐжности функционирования. В процессе отладки основная часть ошибок в программах обнаруживается и устраняется, но есть риск пропуска нескольких ошибок. Любая отладка «может показать наличие ошибок, но не может показать их отсутствие». В процессе тестирования и отладки программ практически невозможно выполнение абсолютно полных проверок. В результате в программах всегда существует некоторое количество невыявленных ошибок. Обеспечение надежности и повышение качества программ Моделирование является лишь одним аспектом обеспечения надѐжности программных комплексов и имеет цель – прогнозирование числа ошибок, остающихся в системе, на основе использования статической информации о процессе обнаружения и устранения ошибок. Не менее важное значение имеют две другие области обеспечения надѐжности программных средств, безошибочное проектирование и испытания, ориентированные на обеспечение надѐжности. Вероятно, самым лучшим способом получить надѐжное программное обеспечение является сведение к минимуму числа ошибок и их последствий в ходе разработки комплекса программ. Однако не существует какого-либо проверенного способа создания надѐжного программного обеспечения. Отсутствует пока и какая-либо теоретическая основа методики разработки безошибочных программ. Тем не менее, по общему мнению, существует целый ряд методов разработки программ и управления этим процессом, которые позволяют создавать надѐжные программы. К этим методам, обычно, относится структурное программирование и некоторые, связанные с ним приѐмы. Идея структурного (модульного) программирования базируется на стремлении упорядочить сложные комплексы программ и их проектирование. Строгое определение термина «структурное программирование» не существует. Имеется несколько определений структурного (модульного) программирования. Чаще всего оно определяется как программирование без использования операторов GO TO, с применением нисходящего метода разработки программ и с использованием принципа модульного конструирования программ. Указанные три приѐма повышают надѐжность, удобочитаемость и удобство обслуживания программного обеспечения. Программирование без использования операторов GO TO. Сам по себе оператор безусловного перехода не приводит к ошибкам. Однако передача управления с помощью этого оператора может вызвать усложнение логической схемы программы и сделать еѐ трудночитаемой. Наоборот, исключение операторов GO TO позволяет получить более понятную и удобочитаемую программу. Кроме того, программу, не содержащую операторов безусловного перехода, легче проверить. Нисходящее программирование. По существу, имеется два способа составления программ: снизу вверх и сверху вниз. Классическим способом составления большинства программ является движение снизу вверх. При таком подходе руководитель группы программистов рассматривает проект в целом, формулирует цели системы, а затем определяет элементы, необходимые для системы программного обеспечения. Задаются средства сопряжения, и отдельные части программы распределяются между программистами. Каждый программист отвечает за проверку своей подсистемы или модуля до момента объединения последних в единую систему. Интеграция модулей в систему выполняется последовательно по уровням и поручается самому квалифицированному из авторов стыкуемых программ. Такой подход к составлению программ аналогичен способу разработки аппаратного оборудования. Более надѐжные программные комплексы позволяет получить «нисходящее» программирование. В этом случае руководитель группы программистов не только осуществляет контроль над работой, но и участвует в составлении программ. Модульное конструирование программ. Обычно при составлении сложной программы еѐ разбивают на отдельные модули так, что каждый из них может использоваться во многих других. Но при этом увеличивается вероятность возникновения всякого рода недоразумений и ошибок. Этот источник ошибок можно свести к минимуму, если вход в каждый модуль будет осуществляться только в его начало (сверху), а выход только в его конец (снизу). Структурирование данных. Неотъемлемой компонентой комплексов программ являются данные, которые поступают на обработку, преобразуются, хранятся и выдаются внешним абонентам. Структурирование данных способствует уменьшению сложности комплекса программ и снижает вероятность появления ошибок из-за неправильного использования. В ряде систем сложность массивов данных превышает логическую сложность программ и обуславливает основную массу ошибок, выявляемых в процессе отладки. Поэтому большое значение при проектировании программ имеет строгое описание переменных и простота структурного построения массивов. Всю совокупность данных можно разделить на два иерархических уровня: простые переменные и массивы. Простые переменные представляют собой минимальную компоненту данных, имеющую имя и описание. Массивы образуются из нескольких простых переменных по некоторым правилам объединения и упорядочивания и имеют собственное описание, структуру и имя. Основными символами для описания данных являются буквы, цифры и ограничители. Наиболее часто используются следующие типы переменных: вещественные, принимающие действительные положительные и отрицательные значения в заданных пределах; целые, в заданных интервалах принимающие только целые положительные и отрицательные численные значения; булевы, принимающие только два значения: да или нет (истина или ложь); двоичные, представляющие собой последовательность бит; символьные, образующиеся из последовательности байтовых кодов, каждый из которых соответствует некоторому символу языка программирования или описания данных. Из простых переменных по заданным правилам упорядочения образуются массивы, размеры которых задаются списками граничных пар. Структура массивов и правила упорядочения переменных различны и определяются следующими факторами: типами и структурой простых переменных, а также областью значений, которые могут принимать переменные; мощностью массива – наибольшим числом значений, которые могут принимать переменные, а также объемом памяти, необходимым для хранения массива в любой момент времени; способом заполнения и уплотнения переменных в памяти, используемой для хранения массива; методом и частотой заполнения и выборочного обновления компонентов массива и затратами производительности ЭВМ, необходимыми для обращения к массиву; типом реальной памяти, используемой для хранения массива. Для повышения надѐжности комплексов программ целесообразно использовать простейшие структуры массивов. При работе с массивами наибольшие затраты производительности ЭВМ связаны с поиском простых переменных или частных массивов, признаки которых удовлетворяют некоторому условию.


написать администратору сайта