Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Надежность программного и аппаратного обеспечения систем.





 

Под надежностью программного обеспечения (ПО) принято понимать его безошибочность, обеспечивающую безотказную работу программ, и как следствие — систем управления. Надежность ПО является одной из важнейших его характеристик. Количественно надежность ПО определяется числом ошибок в программах. Эти ошибки можно разделить на логические и фор­мальные.

Логические ошибки обычно устраняются на этапе отладки программ, формальные—при трансляции программ. Однако вероятность невыявления ошибок ПО весьма велика. К тому же в процессе коррекции в программы вно­сятся новые ошибки. Как показывает опыт разработок ПО, достижение безошибочности является процессом чрезвычайно трудоемким и многоэтапным. Ошибки ПО присущи всем этапам его проектирования и, что существенно, остаются по завершении этих этапов. Изложенное 'про­иллюстрировано на рис. 5. 3. 1, а. Здесь N — число ошибок в ПО; АО— автономная отладка ПО; КО — комплексная отладка; СИ— сдаточные испытания; Э —эксплуатация ПО; , , и — соответственно количество ошибок в ПО в начале каждого из перечисленных выше этапов.

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

Рис. 5. 3. 1. К надежности программного обеспечения

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

Основными причинами ошибок ПО являются: неправильное построение программ; ошибки в логических схемах; ошибки кодирования, изготовления машинных носителей, согласования базовых (входных) данных; вычисления, обработки выходных данных.

По данным Илдона (США, 1974), в трех вычислительных программах объемом от 160 до 200 тыс. операторов было зарегистрировано 7000 ошибок, что составляет от 3, 5 до 4%. Анализ этих ошибок выявил следующее: ошибки обработки машинных носителей составили 19% общего количества; ошибки согласования базовых данных — 14, ошибки вычисления — 12, ошибки обработки выходных данных — 9%.

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

Вероятность того, что ошибка проявится на интервале времени от 0 до t, есть функция отказов ПО

,

где P(t) —вероятность исправной, т. е. безошибочной, работы ПО в интервале времени от 0 до t.

Плотность вероятности Q(t) будет

.

Обозначим через R(t) функцию риска—условную вероятность того, что ошибка проявится в интервале от t до при условии, что до момента t ошибок не было и .

Если — время проявления ошибки, то

,

или

. (5. 3. 1)

 

Поделив обе части равенства (5. 3. 1) на и устремив к нулю, получим

. (5. 3. 2)

Разрешив (5. 3. 2) относительно P(t) и выбрав в качестве начальных условий Р(0) = 1, найдем

 

.

 

Таким образом, вероятность исправной работы ПО описывается экспоненциальной функцией времени (рис. 5. 3. 1, б). Среднее время между ошибками (отказами)

.

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

На рис. 5. 3. 1, в показаны зависимости интенсивности отказов от времени при разработке и эксплуатации аппаратных и программных комплексов. Как следует из рисунка, частость проявления ошибок в программах подобна частости отказов аппаратуры. Отказы из-за ошибок в ПО сначала уменьшаются вследствие их обнаружения и устранения в процессе отладки. Этот период I по своему характеру схож с периодом приработки аппаратуры. Далее следует период эксплуатации II, характеризующийся постоянной интенсивностью отказов из-за ошибок в ПО, если они не исправляются. Устранение этих ошибок порождает новые — вторичные ошибки, которые также подлежат устранению. После ряда доработок комплекс ПО морально устаревает и подлежит замене (возрастание в конце интервала жизни ПО).

Уточним поведение во времени функции риска R(t). Для аппаратуры обычно рассматривается участок II кривой , где R (t) постоянна и справедлив так называемый экспоненциальный закон надежности. Для ПО предположение о постоянстве R(t) неправомочно, функция R(t) должна уменьшаться по мере обнаружения и исправления ошибок и как следствие описывается не одной кривой, а семейством кривых. На рис. 5. 3. 1, в этап III представляет область старения (износа).

В связи с изложенным сделаем два предположения:

1) R(t) постоянно до обнаружения и исправления ошибок, после чего R(t) снова постоянно, но с другим — меньшим значением; 2) R(t) прямо пропорционально числу оставшихся ошибок, т. е.

.

Здесь к — константа; N — начальное число ошибок в ПО; L — число обнаруженных ошибок.

Изложенное отражено графиком, показанным на рис. 5. 3. 1, 2. Неизвестные параметры N и к можно оценить, если обнаружено некоторое количество ошибок. Исключительно важным при этом является знание N, позволяющее оценить полное число ошибок в ПО. Знание к позволяет прогнозировать время появления (n+1), (n +2) и других ошибок. Для оценки величины N предложены различные алгоритмы, базирующиеся на различных моделях. Рассмотрим статистическую модель Миллса

1. Сначала программа «засоряется» некоторым количеством известных
ошибок, вносимых случайным образом. При этом делается предположение, что
вероятность обнаружения при тестировании ПО «собственных» и
привнесенных ошибок одинакова. Тестируя программу и отсортировывая
собственные и внесенные ошибки, можно оценить N.

Действительно, пусть в программу внесено V ошибок, после чего начато тестирование. При тестировании обнаружено n+v ошибок, где п — число найденных собственных ошибок; v — число найденных внесенных ошибок. Тогда по методу максимального правдоподобия

. (5. 3. 3)

Следует иметь в виду, что программист обычно считает каждую обнаруженную ошибку последней. Использование соотношения (5. 3. 3) позволяет реалистически оценить состояние ПО.

2. Рассмотрим простую интуитивную модель. Тестирование ПО
осуществляется параллельно двумя совершенно независимыми группами
программистов, использующих независимые наборы тестов. Пусть и
число ошибок, обнаруженных каждой из групп; — число ошибок,
обнаруженных как первой, так и второй группой (рис. 5. 3. 1, д). Эффективность
тестирования каждой из групп оценим соответственно

,

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

или

По известному найдем величину N.

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

Date: 2016-07-18; view: 818; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию