Автор работы: Пользователь скрыл имя, 16 Декабря 2012 в 20:24, реферат
Надежность программного обеспечения - способность программного продукта безотказно выполнять определенные функции при заданных условиях в течение заданного периода времени с достаточно большой вероятностью.
Степень надежности характеризуется вероятностью работы программного продукта без отказа в течение определенного периода времени.
1. Основные понятия……………………………………………...3
1.1 Модель анализа надежности программных средств……...4
1.2. Факторы, влияющие на надежность ПО………………….5
1.3. Ошибки ПО…………………………………………………5
1.4. Средства повышения надёжности ПО……………………8
1.5. Проблемы исследования надежности ПО………………...8
1.6. Тестирование ПО…………………………………………...9
2. Показатели качества……………………………………………10
2.1. Классификация показателей качества ПО………………..10
2.2. Основные показатели качества надежности ПО…………11
3. Модели надежности ПО……………………………………….13
3.1. Динамические модели надежности……………………….14
3.1.1. Модель Шумана………………………………………..14
3.1.2. Модель La Padula……………………………………….16
3.2. Статические модели надежности………………………….17
3.2.1. Модель Миллса…………………………………………17
3.2.2. Модель Липова…………………………………
НАДЕЖНОСТЬ
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Содержание
1. Основные понятия……………………………………………... |
3 |
1.1 Модель анализа надежности программных средств……... |
4 |
1.2. Факторы, влияющие на надежность ПО…………………. |
5 |
1.3. Ошибки ПО………………………………………………… |
5 |
1.4. Средства повышения надёжности ПО…………………… |
8 |
1.5. Проблемы исследования надежности ПО………………... |
8 |
1.6. Тестирование ПО…………………………………………... |
9 |
2. Показатели качества…………………………… |
10 |
2.1. Классификация показателей качества ПО……………….. |
10 |
2.2. Основные показатели качества надежности ПО………… |
11 |
3. Модели надежности ПО………………………………………. |
13 |
3.1. Динамические модели надежности………………………. |
14 |
3.1.1. Модель Шумана……………………………………….. |
14 |
3.1.2. Модель La Padula………………………………………. |
16 |
3.2. Статические модели надежности…………………………. |
17 |
3.2.1. Модель Миллса………………………………………… |
17 |
3.2.2. Модель Липова………………………………………… |
19 |
1. Основные понятия
Надежность программного обеспечения - способность программного продукта безотказно выполнять определенные функции при заданных условиях в течение заданного периода времени с достаточно большой вероятностью.
Степень надежности характеризуется вероятностью работы программного продукта без отказа в течение определенного периода времени.
Существует 4 основные составляющие функциональной надежности программных систем:
1.1. Модель анализа надежности программных средств
1.2. Факторы, влияющие на надежность ПО
К числу основных факторов, влияющих на надежность ПО отнесены:
1.3. Ошибки ПО
В борьбе со сложностью ПО используются две концепции:
Иерархическая структура. Иерархия позволяет разбить систему по уровням понимания (абстракции, управления). Концепция уровней позволяет анализировать систему, скрывая несущественные для данного уровня детали реализации других уровней. Иерархия позволяет понимать, проектировать и описывать сложные системы.
Независимость. В соответствии с этой концепцией, для минимизации сложности, необходимо максимально усилить независимость элементов системы. Это означает такую декомпозицию системы, чтобы её высокочастотная динамика была заключена в отдельных компонентах, а межкомпонентные взаимодействия (связи) описывали только низкочастотную динамику системы.
Методы обнаружения ошибок, которые базируются на введении в ПО системы различных видов избыточности:
Временная избыточность. Использование части производительности ЭВМ для контроля исполнения и восстановления работоспособности ПО после сбоя.
Информационная избыточность. Дублирование части данных информационной системы для обеспечения надёжности и контроля достоверности данных.
Программная избыточность включает в себя: взаимное недоверие - компоненты системы проектируются, исходя из предположения, что другие компоненты и исходные данные содержат ошибки, и должны пытаться их обнаружить; немедленное обнаружение и регистрацию ошибок; выполнение одинаковых функций разными модулями системы и сопоставление результатов обработки; контроль и восстановление данных с использованием других видов избыточности.
Задача обеспечения ПО устойчивости к ошибкам направлены на применение методов минимизации ущерба, вызванного появлением ошибок, и включают в себя:
Дается 4 группы принципов обеспечения надежности:
Действия, направленные на минимизацию ошибок и сбоев:
В соответствии с ГОСТ 19.004-80 различают следующие виды работ, направленные на устранение ошибок в ПО: проверка, отладка и испытание программы.
Чем интенсивнее использование программного изделия (ПИ), тем быстрее выявляются в нем ошибки. На рисунке приведена зависимость числа обнаруженных ошибок от числа использующих ПИ пользователей:
где K – число пользователей, K1 > K2 > K3.
Рис. 1 Интенсивность обнаружения ошибок от интенсивности использования
Процентные частоты появления ошибок в ПО по типам ошибок представлены в таблице 1.
Таблица 1 – Процентные частоты появления ошибок в ПО
ТИП ОШИБКИ |
ЧАСТОТА ПОЯВЛЕНИЯ, % |
Не полная или ошибочная спецификация |
28 |
Отклонение от спецификации |
12 |
Пренебрежение правилами программирования |
10 |
Ошибочная выборка данных |
10 |
Ошибочная логика или последовательность операций |
12 |
Ошибочные арифметические операции |
9 |
Нехватка времени для решения |
4 |
Ошибка обработки прерываний |
4 |
Ошибка в исходных данных |
3 |
Неточная запись |
8 |
Как видно из таблицы 1 основное количество ошибок делается из-за неверной спецификации или ТЗ. Эти ошибки, в свою очередь, могут быть разделены на следующие категории:
Таблица 2 – Категории ошибок в ПО
ПРИЧИНА ОШИБКИ |
ЧАСТОТА ПОЯВЛЕНИЯ, % |
Ошибки в числовых значениях |
12 |
Недостаточные требования к точности |
4 |
Ошибочные символы или знаки |
2 |
Ошибки оформления |
15 |
Неправильное описание или требование к аппаратуре |
2 |
Исходные данные для разработки неполные, неточные или ошибочные |
52 |
Двусмысленность требований |
13 |
Из этих таблиц, кстати, следует, на что нужно обращать особое внимание при проведении валидации и верификации ПО (верификация отвечает на вопрос, правильно ли и качественно ли создана программа, а валидация (или аттестация) - на вопрос правильно ли работает программа).
1.4. Средства и способы повышения надёжности ПО
На основании методов обнаружения ошибок были разработаны следующие средства повышения надёжности ПО.
Средства, использующие временную избыточность: авторизация доступа пользователей к системе, анализ доступных пользователю ресурсов, выделение ресурсов согласно ролям и уровням подготовки пользователей, разграничение прав доступа пользователей к отдельным задачам, функциям управления, записям и полям баз данных.
Средства обеспечения надёжности, использующие информационную избыточность: ссылочная целостность баз данных обеспечивается за счёт системы внутренних уникальных ключей для всех информационных записей системы, открытая система кодирования, позволяющая пользователю в любой момент изменять коды любых объектов классификации, обеспечивает стыковку системы классификации АИС делопроизводство с ПО других разработчиков, механизмы проверки значений контрольных сумм записей системы, обеспечивают выявление всех несанкционированных модификаций (ошибок, сбоев) информации.
Способы обеспечения и повышения надежности ПО:
1.5. Проблемы исследования надежности ПО
К основным проблемам исследований надежности ПО относятся:
1.6. Тестирование ПО
Важным этапом жизненного цикла ПО, определяющим качество и надёжность системы, является тестирование. Тестирование - процесс выполнения программ с намерением найти ошибки и включает в себя следующие этапы:
Надежность ПО повышается также с помощью применения различных методов тестирования. Полное тестирование ПО невозможно. Обычно применяют следующие виды тестирования: