Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Чуканов Надежност программного обеспечения и аппаратных средств 2008

.pdf
Скачиваний:
75
Добавлен:
16.08.2013
Размер:
4.07 Mб
Скачать

Ошибки ПО являются функцией от входной информации и состояния системы. Ошибки несут систематический характер.

Надежность ПО базируется на понятиях корректности и устойчивости.

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

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

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

Критерии надежности

Критерии надежности – это показатели, позволяющие оценивать предпочтительность тех или иных решений при создании и эксплуатации систем по степени достижения основных целей и с учетом затрат, при которых эти цели достигаются [4].

21

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

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

Критерии:

Детерминированные – оценка количества ошибок в программе на том или ином этапе работы.

Вероятностные – вероятностная оценка свойств ПО.

Все ошибки носят детерминированный характер, но вероятностным оказывается процесс внесения ошибок. Проявление ошибок также носит вероятностный характер.

Примеры критериев:

Корректность ПО.

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

Обслуживаемость системы – степень влияния ошибок ПО на обслуживаемость системы.

Безопасность системы. Частота отказов.

Вероятность безотказной работы за время t при условии времени отладки.

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

Верификация программ – процесс формального доказательства правильности программы, т.е. корректности.

Верификация:

Статическая.

Динамическая (частный случай – тестирование).

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

1. Разработанное ПО в начальной стадии эксплуатации может потребовать менее жестких критериев и большего времени для его совершенствования.

22

2.После выпуска новой версии некоторое время потребуются также менее строгие критерии качества ПО.

3.Имеют место разбросы, вызываемые различием в условиях применения и использования ПО.

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

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

Характеристики ПО

1.Количественные характеристики (оцениваются числом): объем программы; количество сопряжений; количество ветвлений; точки входа/выхода; количество процедур; уровень вложения; количество комментариев;

количество страниц документации; требуемое машинное время.

2.Качественные характеристики (оцениваются числом):

трудности проектирования; трудности в эксплуатации из-за ошибок; тип программ;

данные о персонале (количество, коэффициент загруженности).

3.Качественные характеристики как объективное суждение.

23

Испытания ПО

1.Стендовые (многократные проверки в реальных условиях).

2.Приемосдаточные (подтверждение требуемых характеристик и передача в эксплуатацию).

3.Системные (оценивают правильность взаимодействия с другими системами).

4.Демонстрация в реальных условиях.

5.Сертификационные испытания.

Основные параметры персонала

1.Данные, характеризующие программиста.

2.Данные, характеризующие выполнение конкретной работы. В результате формируются критерии, учитывающие конкретно-

го программиста в конкретной работе.

 

Параметры

Оценка

Оцениваемые

 

программиста

факторы

 

 

А

Уровень

1 – 5

1) ОП=А+Б+В+Г

знаний

 

 

2) ОПКР=(20-Д)*ОП

Б

Уровень

1 – 5

 

способностей

ОП – оценка

 

 

 

 

 

В

Стиль работы

1 – 5

программиста

 

 

 

 

ОПКР – оценка

Г

Степень

1 – 5

программиста

ответственности

 

 

и конкретной работы.

Д

Параметры

0 – 10

 

конкретной работы

 

 

 

 

24

Цель анализа программных ошибок при сертификации и оценке надежности ПО

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

Организация методов сбора данных о надежности. Категоризация возможных программных ошибок по их причи-

нам и проявлениям.

Выработка рекомендаций по совершенствованию бездефектных программ.

Разработка моделей надежности ПО.

Извещения об ошибке

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

1.Объект затруднения (подсистема, БД, ОС и т.д.).

2.Дата и время ошибки.

3.Пример или задача, на которой зафиксирована ошибка.

4.Конфигурация активной структуры ПО.

5.Содержание ошибки.

6.В соответствие ставится извещение о закрытии ошибки, в котором содержится:

информация о закрытии ошибки; генерация новой конфигурации;

правильность распознавания объекта затруднения; существо ошибки.

25

Основные задачи в области надежности ПО (рис. 1.6)

 

 

 

Надежность ПО

 

 

 

 

Определения

 

 

 

Корректность

Устойчивость

 

 

Анализ

Синтез

 

 

1

2

3

4

5

1.1

1.2

1.3

3.1

3.2

 

2.12.2

Рис. 1.6. Основные задачи в области надѐжности ПО

1.Классификация ошибок.

1.1.Организация систем сбора данных.

1.2.Рекомендации по совершенствованию.

1.3.Построение модели.

2.Верификация программ.

2.1.Статическая верификация.

2.2.Динамическая верификация.

3.Тестирование.

3.1.Выбор тестов.

3.2.Управление тестированием.

4.Защита информации.

5.Защита вычислительного процесса.

Количественные вероятностные характеристики надежности ПО

P(t) – вероятность безошибочной работы. Q(t) – вероятность появления ошибок. a(t) Q (t) – частота появления ошибок.

(t) – интенсивность появления ошибок. T0 – среднее время между ошибками.

26

ξk и ξm

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

– время k-го и m-го прогонов, окончившихся отказами. Nотк – количество прогонов, окончившихся отказом.

 

 

m

j 1, Nотк

j

l , ξl – время l-го успешного прогона.

l k 1

υj – время между j-м и (j+1)-м отказами.

– статистическое среднее время между двумя ошибками, N – общее количество прогонов.

среднее время между двумя ошибками.

экспоненциальный закон надежности.

t

 

 

(t )dt

P(t) e 0

– обобщенный закон надежности (λ≠const)

P ( t )

 

 

T

0

t

0

 

 

 

27

Классификация ошибок ПО

Основные проблемы классификации.

1. Где произошла ошибка? 1.1. Персонал.

Информация по категориям персонала включает структуру

ипроцедуры. Это операционные процедуры, правила кодирования

ипроверки, а также стандарты документирования.

1.1.1.Структура.

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

Административный – определяет административную информацию.

1.1.2.Процедура.

Операционные процедуры включают информацию о рабочей среде, т.е. пакетный или интерактивный режим работы, свободный или ограниченный доступ.

Правила кодирования и проверки. Они содержат информацию о степени использования, например, структурного программирования.

Стандарты документации включают форматы и процедуры документирования данного модуля.

1.2.Оборудование.

1.2.1.Компьютер.

Перечень оборудования и интерфейсов.

1.2.2.Связь.

Содержит информацию о внешнем оборудовании в комплекте ПК, включая линии связи с терминалами.

1.2.3.Сопровождающее обеспечение.

Информация обо всем оборудовании, для подготовки модуля к работе.

1.3.ПО.

1.3.1.Внутреннее ПО.

Языковой процессор, загрузчик, редактор связей, ути-

литы.

28

1.3.2.Применение.

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

2.На что похожа ошибка?

2.1.ПО.

2.1.1.Внутреннее ПО.

ОС, редактор связей, загрузчик, утилиты.

2.1.2.Применение.

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

2.2.Функции.

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

2.2.1.Процедура.

В процедурах ввода/вывода подразумевается наличие неправильных значений данных.

2.2.2.Использование ресурса.

При использовании ресурсов наиболее критичными ошибками являются:

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

2.3.Ресурсы.

2.3.1.Имя.

2.3.2.Использование ресурса.

2.4.Область.

2.4.1.Структура программы.

2.4.2.Приложение.

29

3.Как была сделана ошибка?

3.1.Данные.

3.1.1.Входные.

3.1.2.Внутренние.

3.2.Процедуры.

3.2.1.Вычисление.

3.2.2.Контроль.

3.2.3.Интерфейс.

4.Когда была сделана ошибка?

4.1.Начальная разработка.

4.2.Внедрение.

4.3.Функционирование.

5.Почему произошла ошибка?

5.1.Механические причины.

5.1.1.Подстановка.

5.1.2.Путаница.

5.1.3.Пропуск.

5.2.Умственные причины.

5.2.1.Концептуализация.

5.2.2.Реализация.

5.3.Коммуникационные причины.

5.3.1.Персонал.

5.3.2.Документация.

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

30