Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 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 до Если
или
Поделив обе части равенства (5. 3. 1) на
Разрешив (5. 3. 2) относительно P(t) и выбрав в качестве начальных условий Р(0) = 1, найдем
Таким образом, вероятность исправной работы ПО описывается экспоненциальной функцией времени (рис. 5. 3. 1, б). Среднее время между ошибками (отказами)
Один из способов оценки На рис. 5. 3. 1, в показаны зависимости интенсивности отказов от времени при разработке и эксплуатации аппаратных и программных комплексов. Как следует из рисунка, частость проявления ошибок в программах подобна частости отказов аппаратуры. Отказы из-за ошибок в ПО сначала уменьшаются вследствие их обнаружения и устранения в процессе отладки. Этот период I по своему характеру схож с периодом приработки аппаратуры. Далее следует период эксплуатации II, характеризующийся постоянной интенсивностью отказов из-за ошибок в ПО, если они не исправляются. Устранение этих ошибок порождает новые — вторичные ошибки, которые также подлежат устранению. После ряда доработок комплекс ПО морально устаревает и подлежит замене (возрастание Уточним поведение во времени функции риска R(t). Для аппаратуры обычно рассматривается участок II кривой В связи с изложенным сделаем два предположения: 1) R(t) постоянно до обнаружения и исправления ошибок, после чего R(t) снова постоянно, но с другим — меньшим значением; 2) R(t) прямо пропорционально числу оставшихся ошибок, т. е.
Здесь к — константа; N — начальное число ошибок в ПО; L — число обнаруженных ошибок. Изложенное отражено графиком, показанным на рис. 5. 3. 1, 2. Неизвестные параметры N и к можно оценить, если обнаружено некоторое количество ошибок. Исключительно важным при этом является знание N, позволяющее оценить полное число ошибок в ПО. Знание к позволяет прогнозировать время появления (n+1), (n +2) и других ошибок. Для оценки величины N предложены различные алгоритмы, базирующиеся на различных моделях. Рассмотрим статистическую модель Миллса 1. Сначала программа «засоряется» некоторым количеством известных Действительно, пусть в программу внесено V ошибок, после чего начато тестирование. При тестировании обнаружено n+v ошибок, где п — число найденных собственных ошибок; v — число найденных внесенных ошибок. Тогда по методу максимального правдоподобия
Следует иметь в виду, что программист обычно считает каждую обнаруженную ошибку последней. Использование соотношения (5. 3. 3) позволяет реалистически оценить состояние ПО. 2. Рассмотрим простую интуитивную модель. Тестирование ПО
Предположим, что возможность обнаружения всех ошибок одинакова. Это позволяет рассматривать каждое подмножество пространства ошибок п как аппроксимацию всего пространства. Тогда
или
По известному Самый простой способ состоит в оценке величины N на основании статистики, например среднее число ошибок, приходящееся на один оператор по результатам тестирования предыдущих программ. Date: 2016-07-18; view: 1073; Нарушение авторских прав |