Автор24

Информация о работе

Подробнее о работе

Страница работы

Методы оценки надежности программного обеспечения

  • 17 страниц
  • 2014 год
  • 386 просмотров
  • 0 покупок
Автор работы

user126609

Инженер-программист, С/С++/C#, Pascal, Basic

200 ₽

Работа будет доступна в твоём личном кабинете после покупки

Гарантия сервиса Автор24

Уникальность не ниже 50%

Фрагменты работ

1. Определение надежности программного обеспечения………………….3

1.1 Что такое ошибка……………………………………………………….3
1.2 Что такое надежность…………………………………………………..4


2. Надежность аппаратуры…………………………………………………...6


3. Ошибки – их причины и последствия…………………………………….8


4. Модели надежности………………………………………………………..9

4.1 Модель роста надежности……………………………………………..9
4.2 Другие вероятностные модели……………………………………….12
4.3 Статистическая модель Миллса……………………………………...13
4.4 Простые интуитивные модели……………………………………….14


5. Заключение………………………………………………………………...16


6. Список используемой литературы……………………………………….17

1.1 Что такое ошибка?

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

1.2 Что такое надежность?

Второй термин, который следует определить – это надежность программного обеспечения. Опять начнем с исследования известного определения, согласно которому надежность есть вероятность того, что при функционировании системы в течение некоторого периода времени не будет обнаружено ни одной ошибки. Основной недостаток такого определения – это то, что в нем не учтено различие между ошибками разных типов. Рассмотрим авиационную систему диспетчеризации с двумя ошибками в ПО: из-за одной теряется след самолета, а другая состоит в том, что в сообщении оператору неправильно печатается одно слово (например «трансаммериканский» вместо «трансамериканский»). По своим последствиям эти ошибки далеко не одинаковы, поэтому надежность должна быть определена как функция не только частоты ошибок, но и их серьезности.
...

2. Надежность аппаратуры.

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

3. Ошибки – их причины и последствия.

Прежде чем разрабатывать методы повышения надежности, позволяющие избежать ошибок, следует понять их причины.
Один из методов, часто применяемых при исследовании причин ошибок, состоит в том, чтобы собрать данные об ошибках и затем разбить их по категориям, подтверждающим, например, что 17% ошибок – это ошибки сопряжения, 22% - следствие неправильного выбора последовательности операторов программы и т.п. В соответствии с другим методом ошибки группируются по типу предложений языка программирования, в которых они совершены: например, оказывается, что 29% всех ошибок приходится на условные предложения, 13% - на объявление данных и т.д.
Польза подобных исследований ограничена, поскольку они занимаются симптомами, а не причинами ошибок. Именно понимание первопричин ошибок и возможность увязать их с процессов создания программного обеспечения необходимы прежде всего.
...

4. Модели надежности.

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

4.1 Модель роста надежности.

Вероятно, самой известной моделью надежности является модель, разработанная Джелински, Морандой и Шуманом. Поскольку она опирается на теорию надежности аппаратуры, необходимо ввести некоторые понятия этой теории.
Пусть R(t) – функция надежности, т.е. вероятность того, что ни одна ошибка не проявится на интервале от 0 до t; F(t) – функция отказов: вероятность того, что ошибка проявится на интервале от 0 до t. Очевидно, F(t) = 1- R(t). Плотностью вероятности для F(t) является функция f(t) такая, что

Полезно ввести функцию риска z(t): условную вероятность того, что ошибка проявится на интервале от t до t+∆t, при условии, что момента t ошибок не было. Если T - время появления ошибки, то

что, согласно теории вероятностей эквивалентно

Поделив обе части на ∆t и устремив ∆t к нулю, переходим к пределу и получаем, что z(t) = f(t)/R(t) или z(t) = (-dR(t)/dt)/R(t). Теперь это дифференциальное уравнение можно разрешить относительно R(t).
...

4.2 Другие вероятностные модели.

Кроме обсуждавшейся в предыдущем разделе основной модели, было построено несколько других. Предлагалась байесова модель, учитывающая возможность того, что z(t) может не уменьшаться при каждом исправлении ошибки из-за возможного внесения при этом новых ошибок. Шнейдевинд отказывается от предположения, что исправления выполняются сразу же после обнаружения, и предлагает модель, в которой распределение исправлений пропорционально распределению обнаружений ошибок, но отстает во времени. Было предложено несколько моделей на основе марковского процесса, состояния которого изменяются при всяком обнаружении или исправлении ошибки, а вероятности переходов представлены частотами обнаружения и исправления ошибок.
Более общий подход был предложен Шнейдевиндом. Он выполнил статистический анализ данных об ошибках в 19 программах и обнаружил, что эти данные не соответствовали какому-либо единственному распределению вероятностей.
...

4.3 Статистическая модель Миллса.

Модель совершенно другого типа разработал Миллс. В ней не используется никаких предположений о поведении функции риска, эта модель строится на твердом статистическом фундаменте. Сначала программа «засоряется» некоторым количеством известных ошибок. Эти ошибки вносятся в программу случайным образом, а затем делается предположение, что для ее собственных и внесенных ошибок вероятность обнаружения при последующем тестировании одинакова и зависит только от их количества. Тестируя программу в течение некоторого времени и отсортировывая собственные и внесенные ошибки, можно оценить N – первоначальное число ошибок в программе.
Предположим, что в программу было внесено s ошибок, после чего разрешено начать тестирование. Пусть при тестировании обнаружено n+v ошибок, причем n – число найденных собственных ошибок, а v – число найденных внесенных ошибок.
...

4.4 Простые интуитивные модели.

В поисках средств оценки надежности программного обеспечения было разработано и несколько чрезвычайно простых моделей для оценки числа ошибок. Из-за их простоты им часто уделяется недостаточно внимания, но они основаны на более слабых предположениях, чем сложные модели, и могут оказаться очень полезными.
Один простой метод предлагает начинать тестирование двумя совершенно независимыми группами, использующими независимые наборы тестов. Этим двум группам в течение некоторого времени позволяется тестировать системы параллельно, а затем их результаты собирают и сравнивают. Обозначим через N1 и N2 число ошибок, обнаруженных каждой из групп соответственно, а через N12 – число ошибок, обнаруженных дважды (т.е. обеими группами). Это отношение изображено на рис. 4.

Рис. 4 Множества ошибок, обнаруженных при независимых тестах.

Пусть N обозначает неизвестное полное число ошибок в программе.
...

1. Г. Майерс. Надежность программного обеспечения. Москва, Мир, 1980.
2. Р. Гласс. Руководство по надежному программированию. Москва, Финансы и статистика, 1982.
3. Карповский Е.Я., Чижов С.А. Надежность программной продукции. Киев, Техника, 1990.
4. Липаев В.В. Надежность программных средств. Москва, СИНТЕГ, 1998.

Форма заказа новой работы

Не подошла эта работа?

Закажи новую работу, сделанную по твоим требованиям

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

Фрагменты работ

1. Определение надежности программного обеспечения………………….3

1.1 Что такое ошибка……………………………………………………….3
1.2 Что такое надежность…………………………………………………..4


2. Надежность аппаратуры…………………………………………………...6


3. Ошибки – их причины и последствия…………………………………….8


4. Модели надежности………………………………………………………..9

4.1 Модель роста надежности……………………………………………..9
4.2 Другие вероятностные модели……………………………………….12
4.3 Статистическая модель Миллса……………………………………...13
4.4 Простые интуитивные модели……………………………………….14


5. Заключение………………………………………………………………...16


6. Список используемой литературы……………………………………….17

1.1 Что такое ошибка?

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

1.2 Что такое надежность?

Второй термин, который следует определить – это надежность программного обеспечения. Опять начнем с исследования известного определения, согласно которому надежность есть вероятность того, что при функционировании системы в течение некоторого периода времени не будет обнаружено ни одной ошибки. Основной недостаток такого определения – это то, что в нем не учтено различие между ошибками разных типов. Рассмотрим авиационную систему диспетчеризации с двумя ошибками в ПО: из-за одной теряется след самолета, а другая состоит в том, что в сообщении оператору неправильно печатается одно слово (например «трансаммериканский» вместо «трансамериканский»). По своим последствиям эти ошибки далеко не одинаковы, поэтому надежность должна быть определена как функция не только частоты ошибок, но и их серьезности.
...

2. Надежность аппаратуры.

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

3. Ошибки – их причины и последствия.

Прежде чем разрабатывать методы повышения надежности, позволяющие избежать ошибок, следует понять их причины.
Один из методов, часто применяемых при исследовании причин ошибок, состоит в том, чтобы собрать данные об ошибках и затем разбить их по категориям, подтверждающим, например, что 17% ошибок – это ошибки сопряжения, 22% - следствие неправильного выбора последовательности операторов программы и т.п. В соответствии с другим методом ошибки группируются по типу предложений языка программирования, в которых они совершены: например, оказывается, что 29% всех ошибок приходится на условные предложения, 13% - на объявление данных и т.д.
Польза подобных исследований ограничена, поскольку они занимаются симптомами, а не причинами ошибок. Именно понимание первопричин ошибок и возможность увязать их с процессов создания программного обеспечения необходимы прежде всего.
...

4. Модели надежности.

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

4.1 Модель роста надежности.

Вероятно, самой известной моделью надежности является модель, разработанная Джелински, Морандой и Шуманом. Поскольку она опирается на теорию надежности аппаратуры, необходимо ввести некоторые понятия этой теории.
Пусть R(t) – функция надежности, т.е. вероятность того, что ни одна ошибка не проявится на интервале от 0 до t; F(t) – функция отказов: вероятность того, что ошибка проявится на интервале от 0 до t. Очевидно, F(t) = 1- R(t). Плотностью вероятности для F(t) является функция f(t) такая, что

Полезно ввести функцию риска z(t): условную вероятность того, что ошибка проявится на интервале от t до t+∆t, при условии, что момента t ошибок не было. Если T - время появления ошибки, то

что, согласно теории вероятностей эквивалентно

Поделив обе части на ∆t и устремив ∆t к нулю, переходим к пределу и получаем, что z(t) = f(t)/R(t) или z(t) = (-dR(t)/dt)/R(t). Теперь это дифференциальное уравнение можно разрешить относительно R(t).
...

4.2 Другие вероятностные модели.

Кроме обсуждавшейся в предыдущем разделе основной модели, было построено несколько других. Предлагалась байесова модель, учитывающая возможность того, что z(t) может не уменьшаться при каждом исправлении ошибки из-за возможного внесения при этом новых ошибок. Шнейдевинд отказывается от предположения, что исправления выполняются сразу же после обнаружения, и предлагает модель, в которой распределение исправлений пропорционально распределению обнаружений ошибок, но отстает во времени. Было предложено несколько моделей на основе марковского процесса, состояния которого изменяются при всяком обнаружении или исправлении ошибки, а вероятности переходов представлены частотами обнаружения и исправления ошибок.
Более общий подход был предложен Шнейдевиндом. Он выполнил статистический анализ данных об ошибках в 19 программах и обнаружил, что эти данные не соответствовали какому-либо единственному распределению вероятностей.
...

4.3 Статистическая модель Миллса.

Модель совершенно другого типа разработал Миллс. В ней не используется никаких предположений о поведении функции риска, эта модель строится на твердом статистическом фундаменте. Сначала программа «засоряется» некоторым количеством известных ошибок. Эти ошибки вносятся в программу случайным образом, а затем делается предположение, что для ее собственных и внесенных ошибок вероятность обнаружения при последующем тестировании одинакова и зависит только от их количества. Тестируя программу в течение некоторого времени и отсортировывая собственные и внесенные ошибки, можно оценить N – первоначальное число ошибок в программе.
Предположим, что в программу было внесено s ошибок, после чего разрешено начать тестирование. Пусть при тестировании обнаружено n+v ошибок, причем n – число найденных собственных ошибок, а v – число найденных внесенных ошибок.
...

4.4 Простые интуитивные модели.

В поисках средств оценки надежности программного обеспечения было разработано и несколько чрезвычайно простых моделей для оценки числа ошибок. Из-за их простоты им часто уделяется недостаточно внимания, но они основаны на более слабых предположениях, чем сложные модели, и могут оказаться очень полезными.
Один простой метод предлагает начинать тестирование двумя совершенно независимыми группами, использующими независимые наборы тестов. Этим двум группам в течение некоторого времени позволяется тестировать системы параллельно, а затем их результаты собирают и сравнивают. Обозначим через N1 и N2 число ошибок, обнаруженных каждой из групп соответственно, а через N12 – число ошибок, обнаруженных дважды (т.е. обеими группами). Это отношение изображено на рис. 4.

Рис. 4 Множества ошибок, обнаруженных при независимых тестах.

Пусть N обозначает неизвестное полное число ошибок в программе.
...

1. Г. Майерс. Надежность программного обеспечения. Москва, Мир, 1980.
2. Р. Гласс. Руководство по надежному программированию. Москва, Финансы и статистика, 1982.
3. Карповский Е.Я., Чижов С.А. Надежность программной продукции. Киев, Техника, 1990.
4. Липаев В.В. Надежность программных средств. Москва, СИНТЕГ, 1998.

Купить эту работу

Методы оценки надежности программного обеспечения

200 ₽

или заказать новую

Лучшие эксперты сервиса ждут твоего задания

от 200 ₽

Гарантии Автор24

Изображения работ

Страница работы
Страница работы
Страница работы

Понравилась эта работа?

или

19 сентября 2014 заказчик разместил работу

Выбранный эксперт:

Автор работы
user126609
4.9
Инженер-программист, С/С++/C#, Pascal, Basic
Купить эту работу vs Заказать новую
0 раз Куплено Выполняется индивидуально
Не менее 40%
Исполнитель, загружая работу в «Банк готовых работ» подтверждает, что уровень оригинальности работы составляет не менее 40%
Уникальность Выполняется индивидуально
Сразу в личном кабинете Доступность Срок 1—4 дня
200 ₽ Цена от 200 ₽

5 Похожих работ

Реферат

Понятие, структура и классификация информационных систем

Уникальность: от 40%
Доступность: сразу
200 ₽
Реферат

Принтеры

Уникальность: от 40%
Доступность: сразу
250 ₽
Реферат

Системы электронного обучения 1С

Уникальность: от 40%
Доступность: сразу
220 ₽
Реферат

SCADA-системы. Система Трейс Моуд

Уникальность: от 40%
Доступность: сразу
270 ₽
Реферат

Развитие информационно-логистических систем

Уникальность: от 40%
Доступность: сразу
350 ₽

Отзывы студентов

Отзыв Леонид Леонид об авторе user126609 2015-05-08
Реферат

Реферат выполнен в срок. Тема раскрыта. Спасибо!

Общая оценка 5
Отзыв ЗаказчикНаташа об авторе user126609 2014-04-21
Реферат

Отличный автор! Очень грамотный, ответственный, внимательный. Работу выполнил досрочно. Надеюсь на дальнейшее сотрудничество! Спасибо!!!

Общая оценка 5
Отзыв hakeng об авторе user126609 2016-01-16
Реферат

Все сделал оперативно, сильно выручил, молодец.

Общая оценка 5
Отзыв Юлия Конюхова об авторе user126609 2017-06-19
Реферат

Огромное спасибо автору за оперативную работу!

Общая оценка 5

другие учебные работы по предмету

Готовая работа

Высокоскоростная корпоративная, локальная вычислительная сеть предприятия

Уникальность: от 40%
Доступность: сразу
1490 ₽
Готовая работа

Программный комплекс задач поддержки процесса использования смарт-карт клиентами АЗС

Уникальность: от 40%
Доступность: сразу
2000 ₽
Готовая работа

Защита локальной сети программными средствами microsoft

Уникальность: от 40%
Доступность: сразу
1000 ₽
Готовая работа

Разработка мобильного приложения для планирования и организации задач пользователя

Уникальность: от 40%
Доступность: сразу
2400 ₽
Готовая работа

Информационная веб-система организации процесса чартеринга яхт

Уникальность: от 40%
Доступность: сразу
2000 ₽
Готовая работа

Обзор рынка программных средств self-service BI инструментов

Уникальность: от 40%
Доступность: сразу
600 ₽
Готовая работа

Разработка голосового чата для локальной сети

Уникальность: от 40%
Доступность: сразу
1800 ₽
Готовая работа

Конфигурирование поисковых серверов для сети Интернет и локальной сети

Уникальность: от 40%
Доступность: сразу
1000 ₽
Готовая работа

Коммутации в телеграфных сетях

Уникальность: от 40%
Доступность: сразу
1500 ₽
Готовая работа

Динамические структуры данных

Уникальность: от 40%
Доступность: сразу
600 ₽
Готовая работа

Разработка и интегрирование в технические компании информационных веб-ресурсов

Уникальность: от 40%
Доступность: сразу
2000 ₽
Готовая работа

Разработка системы "Умный дом" для использования в загородном доме

Уникальность: от 40%
Доступность: сразу
1000 ₽