Автор: Пользователь скрыл имя, 27 Декабря 2011 в 22:52, реферат
Существует и другое, более простое определение, согласно которому программное обеспечение представляет собой совокупность компьютерных инструкций. Оно охватывает программы, подпрограммы (разделы программы) и данные. Таким образом, программное обеспечение указывает компьютеру, что делать, как, когда, в какой последовательности и как часто. Нередко программное обеспечение называют просто программой.
Компьютерные программы состоят из перечней команд, которые заставляют компьютер выполнять нужную работу. Компьютер должен получать исчерпывающие конкретные команды. Часто компьютерные программы имеют вид стенограммы.
ВВЕДЕНИЕ 3
1. Свойства надежности программного обеспечения 4
2. Модели оценки надежности программ 6
2.1. Модель Джелински-Моранды 6
2.2. Модель Шумана 7
2.3. Модель Миллса 7
3. Методы обеспечения надежности программных средств 8
4. Подход к обеспечению надежности №1 - предупреждение ошибок 10
4.1. Методы борьбы со сложностью 10
4.2. Обеспечение точности перевода 10
4.3. Преодоление барьера между пользователем и разработчиком 11
4.4. Контроль принимаемых решений 11
5. Подход к обеспечению надежности №2 - обнаружение и исправление ошибок 12
6. Подход к обеспечению надежности №3 - обеспечение устойчивости программы к ошибкам 16
ЗАКЛЮЧЕНИЕ 18
СПИСОК ИСПОЛЬЗОВАНОЙ ЛИТЕРАТУРЫ 19
Содержание:
ВВЕДЕНИЕ 3
1. Свойства надежности программного обеспечения 4
2. Модели оценки надежности программ 6
2.1. Модель Джелински-Моранды 6
2.2. Модель Шумана 7
2.3. Модель Миллса 7
3. Методы обеспечения надежности программных средств 8
4. Подход к обеспечению
надежности №1 - предупреждение ошибок
4.1.
Методы борьбы со сложностью
4.2.
Обеспечение точности перевода
4.3.
Преодоление барьера между пользователем
и разработчиком
4.4.
Контроль принимаемых решений
5. Подход к обеспечению надежности №2 - обнаружение и исправление ошибок 12
6. Подход к обеспечению надежности №3 - обеспечение устойчивости программы к ошибкам 16
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗОВАНОЙ
ЛИТЕРАТУРЫ
19
Введение
Существует и другое, более простое определение, согласно которому программное обеспечение представляет собой совокупность компьютерных инструкций. Оно охватывает программы, подпрограммы (разделы программы) и данные. Таким образом, программное обеспечение указывает компьютеру, что делать, как, когда, в какой последовательности и как часто. Нередко программное обеспечение называют просто программой.
Компьютерные программы состоят из перечней команд, которые заставляют компьютер выполнять нужную работу. Компьютер должен получать исчерпывающие конкретные команды. Часто компьютерные программы имеют вид стенограммы.
Надежность программного обеспечения - способность программного продукта безотказно выполнять определенные функции при заданных условиях в течение заданного периода времени с достаточно большой вероятностью. Степень надежности характеризуется вероятностью работы программного продукта без отказа в течение определенного периода времени.
Так
как со стороны клиента наблюдается
устойчивый рост требований к таким
характеристикам программных
Надежность
программного обеспечения гораздо
важнее других его характеристик, например,
времени исполнения, и хотя абсолютная
надежность современного программного
обеспечения, по-видимому, недостижима,
до сих пор не существует общепринятой
меры надежности компьютерных программ.
1. Свойства
надежности программного обеспечения
Надежность
технических изделий
Понятие качества ПО в виде совокупности атрибутов качества определяется стандартом ISO 9126. В этом стандарте выделено 6 основных факторов качества ПО, называемых также целями, и каждый из факторов качества описывается при помощи нескольких входящих в него атрибутов. Свойства надежности ПО соответствуют списку атрибутов цели – надежность по стандарту ISO 9126:2001.
Аппаратный отказ возникает в результате перемежающегося отказа (сбоя) технических средств и/или появления ошибок в операционной среде (ОС, СУБД), которые привели к искажению результата работы программы.
Информационный отказ возникает вследствие ошибки в информации и искажает результат работы программы.
Эргатический
отказ возникает из-за ошибки персонала
(например, оператора) и искажает результат
работы программы.
Выделяют два типа устойчивости:
2. Модели
оценки надежности программ
Оценка и прогнозирование надежности программ осуществляется на основе математических моделей надежности программ. Общие предпосылки для всех моделей следующие. В начальный момент времени программа работает и сохраняет свою работоспособность до окончания интервала времени t1, когда обнаруживается ошибка в программе. Программист исправляет программу, которая затем исправно работает до t2 и т.д. Таким образом, для построения вероятностной модели имеется:
2.1. Модель Джелински-Моранды
Самой известной моделью надежности является модель Джелински-Моранды, опирающая на модели надежности аппаратуры.
Пусть R(t) - функция надежности, т.е. вероятность того, что ни одна ошибка не появится в интервале от 0 до t. F(t)=1-R(t) - функция отказов. Соответственно плотность вероятности f(t)=-dR(t)/dt.
Вводится функция риска z(t) - условная вероятность того, что ошибка появится на интервале от t до t+Dt, при условии, что до момента t ошибок не было. По аналогии z(t)=f(t)/R(t) и R(t) = exp ( -∫ z(x)dx), а среднее время между отказами интеграл от 0 до ¥ от функции R(t).
Основной такой модели является уточнение поведения функции z(t). При оценке надежности аппаратуры аналогичный параметр – интенсивность, равный константе. Однако предположение о постоянстве функции риска представляется не соответствующим реальности в случае программного обеспечения, так как по мере обнаружения и исправления ошибок, время между сбоями увеличивается.
В Модели делается существенное предположение о том, что z(t) постоянна от исправления одной ошибки до обнаружения следующей, после чего z(t) опять становится константой, но уже с другим, меньшим значением. То есть z(t) пропорциональна числу оставшихся ошибок.
Второе предположение z(t) - прямо пропорциональна числу оставшихся ошибок, z(t)=K(N-i), где N - неизвестное первоначальное число ошибок, i - число обнаруженных ошибок, K - некоторая неизвестная константа. Каждый раз, когда ошибка обнаруживается (модель предполагает, что задержка между обнаружением ошибки и ее исправлением отсутствует) z(t) уменьшается на некоторую величину К.
Дальнейшая
проработка этой модели - Модель Шумана
2.2. Модель Шумана
Эта модель относится к динамическим моделям дискретного времени, данные для которой собираются в процессе тестирования программного обеспечения в течение фиксированных или случайных интервалов времени
Предполагается, что в начальный момент компоновки программных средств в систему программного обеспечения в них имеется Ет шибок. С этого времени начинается отсчет времени отладки t, которое включает затраты времени на выявление ошибок с помощью тестов.
Модель Шумана предполагает, что тестирование проводится в несколько этапов. Каждый этап представляет собой выполнение программы на полном комплексе разработанных тестовых данных. Выявленные ошибки регистрируются, но не исправляются. В конце этапа рассчитываются количественные показатели надежности, исправляются найденные ошибки, корректируются тестовые наборы и проводится следующий этап тестирования. В модели Шумана предполагается, что число ошибок в программе постоянно и в процессе корректировки новые ошибки не вносятся.
На основании полученных для каждого этапа времен и кол-ва ошибок рассчитываются параметры функции риска.
У
этой модели много недостатков. Прежде
всего, предположения об ошибках, не
все ошибки программ достаточно серьезны
(ошибка в тексте и результате). Далее -
ошибка немедленно исправляется и по мере
исправления одной ошибки в программу
не вносятся другие. Поэтому дальнейшая
модификация этой модели развивалась
в направлении поиска и определения других
функций риска. Есть работы, показывающие,
что для одной программы функция риска
меняется со временем или при обнаружении
каждой ошибки.
2.3. Модель Миллса
Существует
модель Миллса, в которой не делается
никаких предположений о
Предположим, что в программу внесено s ошибок, после чего начато тестирование. При тестировании обнаружено n - число собственных ошибок, v - число найденных внесенных. Тогда N=sn/v.
Далее
решается задача проверки гипотезы об
N, (насколько полученное значение соответствует
реальному по данному кол-ву внесенных
ошибок). Тестирование проводится до обнаружения
всех внесенных ошибок. Уровень значимости
(мера доверия к модели) определяется:
С=s/(s+k+1), k - кол-во обнаруженных собственных
ошибок.
Информация о работе Методы оценки и повышения надежности программного обеспечения