2.3 Надежность
2.3.1 Критерии надежности
Определяемый ГОСТом показатель качества [8] включает наряду с фактором надёжности факторы сопровождаемости, удобства применения, эффективности, универсальности (гибкости) и корректности. Результатом оценки фактора надёжности является число от нуля до единицы, близость к единице которого показывает степень надёжности данного программного средства. На практике хорошим считается результат оценки от 0,5 до 0,9, поскольку 1 – это идеальная надежность (недостижима), ниже 0,5 –недостаточная.
Надёжность – способность программных средств в конкретных областях применения выполнять заданные функции в соответствии с программными документами в условиях возникновения отклонения в среде функционирования, вызванных сбоями технических средств, ошибками во входных данных, ошибками обслуживания и другими дестабилизирующими воздействиями.
Сам фактор надёжности включает в себя два критерия:
устойчивость функционирования – способность обеспечивать продолжение работы программы после возникновения отклонений, вызванных сбоями технических средств, ошибками во входных данных и ошибками обслуживания;
работоспособность – способность программы функционировать в заданных режимах и объёмах обрабатываемой информации в соответствии с программными документами при отсутствии сбоев технических средств.
Оценка каждого из критериев включает в себя оценки так называемых метрик:
|
|
для критерия устойчивости функционирования |
|
|
для критерия работоспособности. |
В своей оценке каждая из метрик содержит оценки так называемых оценочных элементов. Каждый оценочный элемент обозначается кодом, составленным из 5 символов (см. рис. **).
Рис.** Код оценочного элемента |
В зависимости от фазы проектирования фактор надёжности включает в себя различное количество показателей. На этапе анализа рассчитывается только критерий устойчивости функционирования, включающий в себя только две метрики: средства восстановления при ошибках при входе и средства восстановления при сбоях оборудования. На этапе проектирования добавляется ещё метрика реализации управления средствами восстановления. На фазах реализации, тестирования, изготовления, обслуживания (сопровождения) начинает учитываться критерий работоспособности и все его метрики.
Анализ надежности программного обеспечения
К задачам анализа надежности программного обеспечения можно отнести следующее:
формулирование основных понятий, используемых при исследовании параметров и показателей надежности программ;
выявление и исследование основных факторов, определяющих характеристики надежности сложных программных комплексов;
выбор и обоснование критериев надежности комплексов программ различного типа и назначения;
исследование характеристик искажений исходных данных от различных типов источников и их влияния на надежность функционирования комплексов программ;
исследование ошибок в программах, динамики их изменения при отладке и модернизации и их влияния на надежность;
разработка и исследование методов структурного синтеза сложных программ, повышающих их надежность;
исследование методов и средств контроля и защиты от искажений вычислительного процесса и данных в памяти путем ввода различных видов избыточности и помехозащиты, обеспечивающих автоматизацию и сокращение времени восстановления;
разработка методов прогнозирования характеристик надежности комплексов программ с учетом их сложности, структурного построения и технологии проектировани;
разработка методов создания комплексов программ с заданной надежностью функционирования и средств защиты от сбоев и отказов с учетом важности решаемых системой задач.
Результаты решения этих задач являются основой создания современной высокоэффективной технологии проектирования программного обеспечения с заданными показателями надежности. Для их решения используются результаты экспериментального исследования факторов и характеристик, разработанных и разрабатываемых комплексов программ.
Основные факторы, влияющие на надежность
Одни и те же типы сбоев и отказов при исполнении комплексов программ могут быть вызваны различными факторами, которые можно разделить на 3 группы.
В первую группу входят факторы, непосредственно вызывающие сбой или отказ при исполнении программы, причинами которых могут быть:
искажения исходной информации, поступающей от внешних абонентов;
самоустраняющиеся отказы или сбои в аппаратуре вычислительной системы;
невыявленные ошибки в комплексе программ.
Ко второй группе факторов относятся архитектура комплекса программ и структурное построение его компонент. Структура программ определяет возможность расширения последствий искажений информации или вычислительного процесса, влияет на вероятность превращения искажения в отказ и на время восстановления после отказа.
Третья группа факторов влияет на длительность восстановления и глубину последствий от возникающих отказов. В эту группу входят факторы, определяющие качество контроля вычислительного процесса и обрабатываемых данных, запаздывание в обнаружении искажений, качество классификации искажений и длительность проявления их последствий. Они определяют прежде всего длительность восстановления, время наработки на отказ и способствуют быстрой локализации искажений.
Искажения исходной информации в большинстве случаев непосредственно не влияют на надежность исполнения программ. Искаженные данные могут обрабатываться и являться причиной ошибок в результатах, выдаваемых внешним абонентом или накапливаемых в памяти ВС. Однако, некоторые искажения выходят за область допустимых значений переменных. При этом возрастает вероятность того, что искаженная величина будет обрабатываться некоторым сочетанием команд, приводящим к отказу либо к сбою функционирования. Причины искажения данных, поступающих от внешних абонентов, могут быть различны, и подробно останавливаться на их рассмотрении в теме данного дипломного проекта нет необходимости.
Для некоторых типов систем значительная часть информации является символьной, описывающей логически связанные тексты, либо содержащей десятичные цифры. Стандартное кодирование таких чисел производится в пределах 1 байта на символ.
Таким образом, исходные данные преимущественно имеют объем, кратный целому числу байт. Во многих вычислительных системах интерфейс с внешними абонентами, как и процесс обработки информации, построен на байтовой структурной основе. Поэтому для оценки показателей достоверности исходной информации для комплексов программ в качестве наиболее целесообразной единицы следует выбрать вероятность искажения 1 байт.
На надежность функционирования программного обеспечения влияет структура и технология разработки комплексов программ. В зависимости от структурного построения комплекса программ последствия ошибки могут быть локализованы в некотором небольшом участке программ и данных либо распространиться на значительно большое расстояние от места расположения ошибки. Строгое иерархическое построение крупных комплексов программ на базе единообразно оформленных законченных программных модулей обеспечивает снижение вероятности ошибки в каждой команде программы и снижает возможность распространения последствий ошибок за пределы программного модуля и используемых в нем массивов данных.
Выводы
В данном разделе были рассмотрены вопросы разработки, отладки, тестирования и надежности программных продуктов. Было приведено обоснование необходимости и важности этапа отладки в процессе разработки программного обеспечения, даны краткие описания основных способов отладки и тестирования. Рассмотрены критерии надежности систем, основные факторы, влияющие на надежность функционирования комплексов программ, проведен анализ надежности программных продуктов.