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

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

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

Текст из файла

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

Понятие отказа программы

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

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

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

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

Кроме того, ни в технических требованиях, ни при проверке программы невозможно оговорить и проверить все ситуации, которые возникают при использовании программы. Дело в том, что программа является краткой записью очень сложных функций. Поэтому записать в спецификациях все свойства функций, которые должна выполнить программа, будет не намного проще, чем раз­работать соответствующую программу. Например, легко подсчитать, что если входами для программа являются 10 переменных, каждая из которых может приобретать 103 различных значений, то число возможных входных комбинации будет 1030. Если допустить, что проверка реакции программы на каждую из входных комбинаций занимает только одну микросекунду, то в году возможно приблизительно только 3*1013 проверок (!). Поэтому естественно, что в разработанной программе всегда мо­гут встречаться непроверенные сочетания исходных дан­ных, при наступлении которых в ходе эксплуатация про­грамма может отказать в выполнении нужных функций. Поскольку не всегда возможно составлять точную спецификацию, предлагается классифицировать программы по степени точности специфи­кации следующим образом:

1) программы, функции которых полностью определя­ются спецификацией;

2) программы, функции которых корректируются сопоставлением вычислительных и измеренных результатов (сюда относятся моделирующие программы, т. е. про­граммы, реализующие математическую модель, физичес­кого объекта);

3) программы, действующие в постоянно изменяющейся среде (состоящей из других программ, данных, пользователей, реальных систем, и установок и т. п.; сюда относятся операционные системы, программы управления воздушным движением, программы управления ресурсами и др.).

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

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

Классификация ошибок программирования.

Анализ ошибок программирования основан на их классифика­ции.

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

В настоящее время имеется представительная стати­стика об ошибках программного обеспечения и их при­чинах. Процентные частоты появления ошибок раз­личного типа по данным приведены в табл. 6.1. Наиболее часто встречающиеся ошибки — ошибки техни­ческого задания к программе—могут быть, в свою оче­редь, разделены па категории, приведенные в табл. 6 2.

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

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

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

1) усовершенствование технологии программирова­ния;

2) выбор алгоритмов, не чувствительных к различно­го рода нарушениям вычислительного процесса (исполь­зование алгоритмической избыточности);

3} резервирование программ дуальное и N-версионное программирование, другие методы введения структурной избыточности;

4) контроль и тестирование программ с последующей коррекцией.

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

Результаты вычислений искажаются погрешностями:

1) исходных данных, трансформиро­ванными в ходе вы­числений;

2) округления;

3) методическими

4) обусловленны­ми отказами, сбоями и ошибками в про­граммах.

Эти погрешности могут быть вo мно­гих случаях оценены теоретически, однако в общем случае проще определить их методом цифрового моделирования вычислительных процессов и источников погрешностей. Как следует из табл. 6.2, ошибки, обусловленные недостаточной точностью вы­числений, составляют в общем количестве ошибок не­большую долю. Это обстоятельство объясняется, с одной стороны, тем, что разрядность ЭВМ в большинстве слу­чаев выбирается со значительным запасом, С другой сто­роны, отказы, обусловленные недостаточной точностью, легко обнаруживать и устранить. Остальные же ошибки, приведенные и табл. 6.1 и 6.2 вызваны в основном труд­но обнаруживаемыми ошибками программирования.

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

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


компоненты п-мерных векторов либо выражения вида

В случае, если результаты представлены в виде двоичных кодов, не имеющих числового содержания,

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

В случае одномерного числового результата расстоянием р служит разность

или абсолютная разность

Мерой чувствительности М тогда может служить ве­личина

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

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

МОДЕЛИ НАДЕЖНОСТИ ПРОГРАММ

Прогнозирование надежности программ в ходе их экс­плуатации. Оценка и прогнозирование надежности про­грамм осуществляется на основе математических моделей надежности программ. Ниже рассматривается модель надежности программы, предложенная Б. Литтл-вудом и Дж. Л. Верраллом [32], имеющая в первую оче­редь познавательную ценность, а также более простые модели, нашедшие применение в различных частных случаях

Рассмотрим временную ось (рис. 6.2), где снизу нане­сены номера отказов в программе, а сверху обозначены интервалы времени между отдельными отказами про­граммы. Представим, следуя [32]. что в начальный мо­мент времени программа работает и сохраняет свою работоспособность до окончания интервала времени t1, когда происходит первый отказ программы. Програм­мист после этого «исправляет» программу, которая за­тем работает исправно в течение времени t2, и т. д. Пусть случайное время между i-м и (i+1)-м отказом имеет функцию плотности распределения , где параметр мера интенсивности отказов. Чем меньше тем лучше программа. Программист стремится сделать про­грамму лучше, чем она была до обнаружения отказа, т. е. сделать ее более надежной. Другими словами, программист стремится уменьшить , т. е. добиться соотно­шения для всех i. Безусловно, он не может быть уверен, что в ходе частичной переделки программа дей­ствительно стала лучше — имеется много случаев, когда программа после переделки стала намного хуже.

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

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

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

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

Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.

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

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