Главная » Просмотр файлов » №37 (Надежность программного обеспечения)

№37 (Надежность программного обеспечения) (1006294), страница 2

Файл №1006294 №37 (Надежность программного обеспечения) (Вопросы по разным темам с ответами (программирование)) 2 страница№37 (Надежность программного обеспечения) (1006294) страница 22017-06-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

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

Рассмотрим параметр как случайную величину. Пусть функция плотности распределении

где параметр. Теперь легко сформулировать условие для описания стремления программиста реализовать цель исправления программы. Вместо предположения, что интенсивность отказов стала после исправления опреде­ленно меньше, предполагается, что такое событие веро­ятно, имело место, т, е. что

для всея '

Обозначим функцию распределения параметра че­рез

Тогда на основании (6.1)

Если интенсивность отказов, то для В модели предполагается также, что восста­новление мгновенное (т. е, время восстановления намно­го меньше, чем время безотказной работы),

Допустим, что имеются исходные данные описывающие п первых отказов программы, и что про­граммист исправляет i-ю ошибку, используя тот же ме­тод, что и раньше. Необходимо оценить распределение времени до (n+1)-го отказа, используя предварительный

опыт.

Ф
ункции плотности распределения, удовлетворяющие приведенным выше требованиям и сочетающие близкие к реальным выражения с удобным математическим ап­паратом, имеют вид

где некоторая монотонно возрастающая от i функция.

Оценим время до следующего отказа, начиная с про­извольного момента времени. Рис. 6.3 аналогичен рис. 6.2, однако время означает время от восстановления после (п—1)-го отказа до настоящего момента времени (сейчас) — нового начала отчета времени t до следующего отказа. Результаты наблюдений обозначают интервалы времени между отказами (или, точнее, между восстановлением после предыдущего и наступлением по­следующего отказа). Тогда после ряда преобразований на основании (6 2) и (6.3) может быть получено выражение для интенсивности отказов в момент времени tn (cейчас);

Предлагается выбрать функцию в виде

(6.4)

гле коэффициенты.

Функция плотности распределения времени до следующего отказа (рис. 6.3) выражается как

Рассмотрим сначала изменение в течение одного периода безотказной работы между двумя отказами: имеется в виду, что n, а также фиксированы, a tn растет. Следовательно, функция убывает монотонно, поскольку второй член в (6,4) убывает моно­тонно. Это согласуется с ин­туитивными соображениями: мы склонны считать систе­му тем более падежной, чем больше времени она отрабо­тала после последнего отка­за. В момент отказа величи­на не определена, но можно определить ее значе­н
ия непосредственно перед отказом и непосредственно после последнего исправления программы, когда имеется ряд Второй член (6.4) при

этом остается неизменным, а первый член превращается из . Это означает, что после исправления программы мгновенная интенсивность отка­зов уменьшается скачком, если

или

Последнее неравенство удовлетворяется в случае, если растет от i быстрее, чем по линейной зависимости. Мгновенная интенсивность отказов (6.4), таким образам, имеет тенденцию убывать как при ис­правлениях при условии достаточно быстрого роста функции так и во время исправной работы между отказами.

На рис. 6.4 приведена зависимость для некоторо­го участка эксплуатации программы; 1 — момент первого и 2 — момент второго отказа.

Приведенная (6.4) модель, предложенная Б. Литтл-вудом и Дж. Л. Верраллом [32], может быть упрощена, если полагать, что что имеет место при достаточно больших i. Тогда

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

правдоподобия.

Рассмотренная модель хорошо объясняет процессы, происходящие в ходе формирования последовательности отказов — восстановлении. Однако для практических расчетов и прогнозов надежности программ предложены более простые модели надежности.

Модель Джелннскога—Моранды [21]. Эта модель ос­нована на следующих допущениях: 1) время до следующегo отказа распределено экспоненциально; 2) интен­сивность отказов программы пропорциональна количе­ству оставшихся и программе ошибок.

Согласно этим допущениям вероятность безотказной работы программ как функции времени , равна

Здесь коэффициент пропорциональности; Nпервоначальное число ошибок программы. В (6.7) отчет времени начинается от момента последнего (i-1)-го от­каза программы.

Модель Шумана. Данная модель отличается от моде­ли Джелинского—Моранды только тем, что периоды вре­мени отладки и эксплуатации рассматриваются отдельно.

Модель Шика—Волвертона. Основой этой модели является предложение о том, что интенсивность проявле­нии ошибок программы пропорциональна не только коли­честву оставшихся в программе ошибок, но и времени, потраченному на отладку.

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

СТРУКТУРНЫЕ МЕТОДЫ ТЕСТИРОВАНИЯ ПРОГРАММ

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

Программа может быть тестирована либо полностью (полное тестирование), либо выборочно (выборочное тестирование) в отдельных точках пространства исходных данных.

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

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

Общая схема генератора тестовых наборов представ­лена на. рис. 6.7. Исходя из тестируемой программы Т выбирается набор путей П в структуре программы, удов­летворяющей некоторым критериям К тестирования. Наиболее часто эти критерии основаны на структуре про­граммы. Достаточно простое требование может заклю­чаться в том, что выбранные пути должны перекрывать



(задействовать) все операторы (команды программы).

Затем генерируются ограничения О, позволяющие реали­зовать тот или иной путь на графе программы. Ограни­чения преобразуются модулем ПВ в ограничения к ис­ходным данным. Только тогда с помощью алгоритма А генерируются тестовые наборы ТН — наборы числовых значений исходных данных, удовлетворяющих отдельным ограничениям.

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

Тестирование ветвей. Более строгое требование за­ключается в том, что выбранные пути должны перекры­вать все ветви структуры программы или все разветвле­ния по всем направлениям (динамическое тестирование или тестирование ветвей). Такой подход гарантирует однократное тестирование всех операторов и всех ветвей.

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

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

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

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

Тип файла
Документ
Размер
670,5 Kb
Тип материала
Высшее учебное заведение

Список файлов ответов (шпаргалок)

ГОСЫ!!!
19, 27
12
39. Система управления файлами. Основные задачи ОС по управлению файлами. Логическая и физическая организация файловой системы
41
42. Понятие программных средств и их жизненный цикл
46. Поля Галуа и алгебра полиномов
47. Методы шифрования с открытым ключом
49
50. Экспертные системы. Архитектура. Основные компоненты
51. Эволюционное моделирование. Генетическое программирование
52
53
54. Теорема о полноте системы функций алгебры логики. Необходимость
57. Основные синтаксические конструкции языка ПРОЛОГ
58. Префиксная форма записи и списковая структура программы и данных на языке ЛИСП
59
Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7041
Авторов
на СтудИзбе
259
Средний доход
с одного платного файла
Обучение Подробнее