СИСТЕМА РЕГИСТРАЦИИ ОШИБОК И АНАЛИЗА НАДЕЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Предлагаемая полезная модель относится к вычислительной технике. Предназначена для регистрации ошибок возникающих при разработке программного обеспечения и определения надежности их функционирования.
Наиболее близким к предлагаемой полезной модели техническим решением является «Инструментальный комплекс контроля и анализа надежности программного обеспечения», Лисе В.А. Разработка математических и имитационных моделей надежности программного обеспечения систем реального времени. Диссертация на соискание ученой степени кандидата технических наук. Санкт-Петербург. 2007, состоящей из подсистемы сбора и обработки ошибок в программном обеспечении и подсистемы обработки статистики ошибок.
К недостаткам прототипа можно отнести:
1. Регистрация ошибок и ввод их параметров осуществляется оператором вручную.
2. Не учитывается степень влияния зарегистрированных ошибок на надежность программного обеспечения, в то время как ошибки разных типов на надежность программного обеспечения влияют не одинаково.
3. Не учитывается возможность построения оцениваемого программного обеспечения по модульному принципу, т.е. инструментальный комплекс не имеет возможности оценивать надежность программного обеспечения как совокупность отдельных программных модулей и не учитывает взаимосвязи между модулями.
Целью полезной модели является расширение функциональных возможностей путем создания системы регистрации ошибок и анализа надежности программного обеспечения.
Система регистрации ошибок и анализа надежности программного обеспечения состоит из фильтра ошибок, часов реального времени, регистратора и двух компьютеров с программным обеспечением. Один из компьютеров служит для выдачи в ЭВМ с испытываемым программным обеспечением тестовых последовательностей, второй - предназначен для анализа и расчета показателей надежности испытываемого программного обеспечения.
Схема системы приведена на фиг.1. Первый компьютер выдает разработанные ранее и сохраненные в нем тестовые данные на ЭВМ с загруженным в нее испытываемым программным обеспечением, в виде потока возможных значений входных данных. Для каждого значения входных данных имеются эталонные выходные данные, которые хранятся в этом компьютере вместе с тестовыми входными данными. Эталонные выходные данные с компьютера поступают на фильтр ошибок, представляющий собой цифровой компаратор, который сравнивает выходные данные, полученные от ЭВМ с загруженным в нее испытываемым программным обеспечением с эталонными выходными данными полученными от компьютера в котором хранятся тестовые последовательности. При несовпадении этих данных фильтр ошибок фиксирует факт ошибки и выдает сигнал на регистратор, который фиксирует содержание регистров процессора ЭВМ на которой функционирует испытываемая программа и, с помощью часов реального времени, фиксирует время возникновения ошибки. Регистратор представляет собой набор регистров для хранения зафиксированного значения с часов реального времени и содержимого регистров процессора ЭВМ с испытываемой программой. Данные с регистратора поступают на второй компьютер, который производит обработку полученных данных и осуществляет классификацию ошибок по типам ошибок, анализ межмодульных связей, расчет и анализ показателей надежности. Классификация ошибок производится по степени их влияния на работоспособность модуля:
- небольшими ошибками называют такие, на которые средний пользователь не обратит внимания при применении программного комплекса вследствие отсутствия их проявления и последствия которых обычно так и не обнаруживаются. Небольшие ошибки могут включать орфографические ошибки на экране, пропущенные разделы в справочнике и другие мелкие проблемы.
- умеренными ошибками называют те, которые влияют на конечного пользователя, но имеются слабые последствия или обходные пути, позволяющие сохранить достаточную функциональность программного комплекса. Это такие дефекты, как неверные ссылки на страницах, ошибочный текст на экране и даже сбои, если эти сбои трудно воспроизвести и они не оказывают влияния на существенное число пользователей.
- критические ошибки останавливают выпуск версии программного продукта. Это ошибки с высоким влиянием, которые вызывают сбой в системе или потерю данных, отражаются на надежности и безопасности.
Анализ межмодульных связей предназначен для определения зависимостей между программными модулями. Для каждой пары модулей можно определить показатель зависимости, который характеризует вероятность Р того, что проявление ошибки в одном модуле вызовет неправильную работу другого модуля:
- зависимость отсутствует - между модулями нет никаких связей (Р=0);
- зависимость по данным - модуль А вызывает модуль В. Все входные и выходные параметры вызываемого модуля - простые элементы данных (Р=0,1);
- зависимость по образцу - в качестве параметров используются структуры данных (Р=0,3);
- зависимость по управлению - модуль А явно управляет функционированием модуля В (с помощью флагов или переключателей), посылая ему управляющие данные (Р=0,4);
- зависимость по внешним ссылкам - модули ссылаются на один и тот же элемент глобальных данных (Р=0,5);
- зависимость по общей области - модули разделяют одну и ту же структуру глобальных данных (Р=0,7);
- зависимость по содержанию - один модуль прямо ссылается на содержание другого модуля (не через его точку входа). Например, коды их команд перемежаются друг с другом (Р=1).
Далее на основе данных об ошибках в соответствии с классификацией типов ошибок рассчитываются показатели надежности отдельных модулей и на основе анализа межмодульных связей рассчитываются и анализируются показатели надежности всего программного обеспечения.
Сопоставительный анализ с прототипом показывает, что заявляемое устройство отличается тем, что содержит фильтр ошибок, часы реального времени, регистратор и позволяет производить регистрацию ошибок и анализ надежности программного обеспечения в автоматическом режиме без участия оператора, что позволит сократить время затрачиваемое на тестирование. Кроме этого, заявляемая полезная модель за счет учета влияния ошибок разных типов на надежность программных модулей и учета влияния межмодульных связей на общую надежность программного обеспечения позволит повысить достоверность оценки надежности программного обеспечения.
Полезная модель может быть использована в процессе разработки программного обеспечения на этапах определения требований к программному обеспечению и на этапах его тестирования и отладки для сокращения времени и материальных затрат.