- •Размещено на http://www.Allbest.Ru/
- •2. Предмет изучения, цели и задачи, содержание дисциплины
- •3. Краткая история возникновения и развития теории надежности
- •4. Определение понятия надежность
- •2. Основные понятия теории надежности
- •1. Характер изменения выходного параметра объекта до момента возникновения отказа. По этому признаку различают следующие виды отказов:
- •3. Показатели надежности невосстанавливаемых и восстанавливаемых объектов
- •2. Показатели ремонтопригодности
- •3. Показатели долговечности
- •4. Показатели сохраняемости
- •5. Комплексные показатели надежности
- •2. Модель надежности невосстанавливаемого и восстанавливаемого элемента
- •3. Аналитические методы расчета надежности
- •4. Расчет надежности системы с параллельным соединением элементов
- •3. Задачи определительных испытаний
- •4. Контрольные испытания на надежность
- •2. Обеспечение надежности на всех этапах жизненного цикла объекта
- •9. Основы обеспечения сохранности информации
- •1. Возможные угрозы информации
- •2. Методы, средства и мероприятия по обеспечению сохранности данных
- •2. Факторы, создающие угрозу безопасности функционирования программных средств
- •3. Выбор и обоснование характеристик надежности по
- •2. Методы обеспечения надежности программных средств
- •3. Подход к обеспечению надежности №1 - Предупреждение ошибок
- •4. Подход к обеспечению надежности №2 - Обнаружение и исправление ошибок в программе
- •I. Тестирование для обнаружения ошибок в программе.
- •5. Подход к обеспечению надежности №3 - Обеспечение устойчивости программы к ошибкам
- •2. Классификация вычислительных систем
- •2. Оценка надежности и эффективности информационной системы по уровню обученности специалиста
- •Размещено на Allbest.Ru
3. Выбор и обоснование характеристик надежности по
Выбор, установление и утверждение характеристик оценки надежности и сопоставления с требованиями спецификаций связано с определенными этапами жизненного цикла программного средства. Под жизненным циклом ПС (software life cycle) понимают весь период его разработки и эксплуатации (использования), начиная от момента возникновения замысла ПС и кончая прекращением всех видов его использования. Жизненный цикл охватывает довольно сложный процесс создания и использования ПС (software process). Этот процесс может быть организован по-разному для разных классов ПС и в зависимости от особенностей коллектива разработчиков.
В простейшем варианте набор этапов жизненного цикла таков:
· системный анализ (анализ требований);
· проектирование (предварительное и детальное);
· кодирование и отладка ("программирование");
· тестирование;
· эксплуатация (хранение и внедрение) и сопровождение.
В ходе системного анализа и предпроектной подготовки определяются назначение и основные функциональные характеристики ПС, оценивается возможная эффективность применения, устанавливаются требования к надежности и формируется техническое задание на разработку. Основными факторами, определяющими появление ошибок при выработке требований к ПО и влияющими на надежность, являются:
1) масштабность и сложность заданий на ПО, многофункциональность, универсальность, большой объем обрабатываемой информации,.
2) сложность общения специалистов различных профессий, участвующих в выработке общих требований и их интерпретации в специальных требованиях к математическому, информационному и программному обеспечению.
Ошибки в выработке требований к ПО и выбор его структуры являются основными ошибками (причинами отказов) ПО, обладающих большой устойчивостью на всех этапах жизненного цикла и свойством в большой степени разрушать структуру ПО при попытке их устранения.
На этапе проектирование закладывается корректность программ и основными влияющими факторами являются:
1) технология разработки
2) структурная упорядоченность программ и данных, стандартизация структуры единиц ПО;
3) уровень автоматизации проектирования и испытаний
4) выбор способов и критериев отладки
5) создание инструментальной среды
На этапе эксплуатации ПО определяющими факторами надежности являются полнота и точность спецификаций; степень помехозащищенности программ; обнаружение, диагностирование и документирование отклонений в алгоритмах функционирования, характерных для реальных условий; безопасное реагирование ПС на отклонения в алгоритмах; полное документирование каждого изменения в программах; вызванного обнаруженными проектными ошибками.
На этапе сопровождения устраняют обнаруженные проектные ошибки, а также ошибки, внесенные при устранении первых, программы тиражируются и адаптируются к конфигурации технических средств и новых версий системного ПО, расширяется пользовательский интерфейс. Главным свойством надежности ПО является восстанавливаемость (приспособленность к модернизации).
12. Методы оценки и повышения надежности программного обеспечения
1. Модели оценки надежности программ
Оценка и прогнозирование надежности программ осуществляется на основе математических моделей надежности программ. Общие предпосылки для всех моделей следующие. В начальный момент времени программа работает и сохраняет свою работоспособность до окончания интервала времени t1, когда обнаруживается ошибка в программе. Программист исправляет программу, которая затем исправно работает до t2 и т.д. Т.о. для построения вероятностной модели имеется:
А) Случайное время между двумя последовательными отказами, к-е имеет функцию плотности распределения f(t/li) появления ошибок
Б) число оставшихся ошибок в программе
Самой известной моделью надежности является модель Джелински-Моранды, опирающая на модели надежности аппаратуры.
Пусть 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) и
,
а среднее время между отказами интеграл от 0 до ¥ от функции R(t).
Основной такой модели является уточнение поведения функции z(t). При оценке надежности аппаратуры аналогичный параметр - интенсивность =константе. Однако предположение о постоянстве функции риска представляется не соответствующим реальности в случае программного обеспечения, так как по мере обнаружения и исправления ошибок, время между сбоями увеличивается.
В Модели делается существенное предположение о том, что z(t) постоянна от исправления одной ошибки до обнаружения следующей, после чего z(t) опять становится константой, но уже с другим, меньшим значением. То есть z(t) пропорциональна числу оставшихся ошибок.
Второе предположение z(t) - прямо пропорциональна числу оставшихся ошибок,
z(t)=K(N-i),
где N - неизвестное первоначальное число ошибок, i - число обнаруженных ошибок, K - некоторая неизвестная константа. Каждый раз, когда ошибка обнаруживается (модель предполагает, что задержка между обнаружением ошибки и ее исправлением отсутствует) z(t) уменьшается на некоторую величину К.
Дальнейшая проработка этой модели -Модель Шумана относится к динамическим моделям дискретного времени, данные для которой собираются в процессе тестирования программного обеспечения в течение фиксированных или случайных интервалов времени
Предполагается, что в начальный момент компоновки программных средств в систему программного обеспечения в них имеется Ет шибок. С этого времени начинается отсчет времени отладки t, которое включает затраты времени на выявление ошибок с помощью тестов.
Модель Шумана предполагает, что тестирование проводится в несколько этапов. Каждый этап представляет собой выполнение программы на полном комплексе разработанных тестовых данных. Выявленные ошибки регистрируются, но не исправляются. В конце этапа рассчитываются количественные показатели надежности, исправляются найденные ошибки, корректируются тестовые наборы и проводится следующий этап тестирования. В модели Шумана предполагается, что число ошибок в программе постоянно и в процессе корректировки новые ошибки не вносятся.
На основании полученных для каждого этапа времен и кол-ва ошибок рассчитываются параметры функции риска.
У этой модели много недостатков. Прежде всего, предположения об ошибках, не все ошибки программ достаточно серьезны (ошибка в тексте и результате). Далее - ошибка немедленно исправляется и по мере исправления одной ошибки в программу не вносятся другие. Поэтому дальнейшая модификация этой модели развивалась в направлении поиска и определения других функций риска.(схема 2). Есть работы показывающие, что для одной программы функция риска меняется со временем или при обнаружении каждой ошибки.
Существует модель Миллса, в которой не делается никаких предположений о поведении функции риска, а модель строится на статистике. Ошибки специально вносятся в программу случайным образом. Путем тестирования программы в течении некоторого времени и отсортировывая собственные и внесенные ошибки, можно оценить первоначальное число ошибок в программе.
Предположим, что в программу внесено s ошибок, после чего начато тестирование. При тестировании обнаружено n - число собственных ошибок, v - число найденных внесенных. Тогда N=sn/v.
Далее решается задача проверки гипотезы об N. (насколько полученное значение соответствует реальному по данному кол-ву внесенных ошибок). Тестирование проводится до обнаружения всех внесенных ошибок. Уровень значимости (мера доверия к модели) определяется: С=s/(s+k+1), k - кол-во обнаруженных собственных ошибок.
