Содержание к диссертации
Содержание 2
Введение 6
1 Анализ методов оценки надежности программных средств на всех этапах
жизненного цикла 11
1Л Программное обеспечение и надежность 11
1.2 Проблемы в области исследования надежности программного обеспечения.. 12
1.2Л Проблемы терминологии 13
1.2.2 Проблемы выбора параметров 15
1.3 Классификация моделей оценки надежности программного обеспечения 16
1.3 Л Классификация по оптимизируемым параметрам надежности 16
КЗ.2 Классификация по используемым формальным методам 17
Классификация моделей по их месту в процессе разработки 18
Прочие модели 18
Гибридные модели 18
1.4 Методы и средства обеспечения надежности программного обеспечения 19
1.4Л Методы проектирования надежного программного обеспечения 19
Методы предупреждения ошибок 19
Методы обнаружения ошибок 19
Методы обеспечения устойчивости к ошибкам 20
Фазы разработки программного обеспечения 20
Фаза дизайна архитектуры программного обеспечения 22
Кб Л Создание архитектуры программного обеспечения, как этап
проектирования информационной системы 22
1.6.2 Зависимость надежности от архитектуры программного обеспечения 23
1.63 Компоненты архитектуры 24
1,6.4 Свойства компонентов архитектуры 26
1*6.5 Надежность архитектуры программного обеспечения 28
Фаза кодирования 32
Фаза тестирования 33
Методология тестирования программного обеспечения 34
Моделирование роста надежности программного обеспечения 36
Операционные профили тестирования 39
1.9 Выводы 42
2 Мультиверсионное программное обеспечение 43
Базовые элементы мультиверсионного программного обеспечения. 43
Жизненный цикл мультиверсионного программного обеспечения 47
Фаза системных спецификаций- формирование NVX (NVS - супервизор) 47
Фаза выработки требовании к ПО - выбор способов достижения и степени разнообразия версий ПО 4S
Фаза спецификации ПО - установка определителей ошибок и алгоритмов восстановления . 49
Фаза проектирования и кодирования - ведение С\0-протокола развития NVS 49
Фаза тестирования - фаза предварительной эксплуатации NVS 50
Фаза оценки и принятия - оценка отказоустойчивости NVS 50
Фаза сопровождения и развития - выбор и осуществление способа сопровождения NVS 50
2.3 Восстановление сбойных компонент при мультиверсноппом объектно-
ориентированном программировании 51
2.3.1. Подход к построению избыточности программного обеспечения 52
2.3.2 Избыточность программного обеспечения и объектно-ориентированный
подход 52
23.3 Общие принципы реализации мультиверсионной избыточности 54
Современные подходы реализации мультиверсионной избыточности 55
Объектно-ориентированное восстановление версий компонент программного обеспечения 56
2.4 Выводы 58
3 Модели и алгоритмы анализа надежности программных средств 59
З Л Модель анализа на этапе дизайна архитектуры программного обеспечения .„59
3.2 Анализ надежности программного обеспечения па фазе кодирования 63
3-3 Анализ надежности программного обеспечения на фазе тестирования системы
3.4 Операционные профили тестирования компонент 67
ЗА1 Оценивание вероятностей сбоя 68
3-4.2 Ведение таблиц параметров профилей 68
3.4,2 Пример применения операционных профилей 70
3-5 Модели надежности объектно-ориентированного программного обеспечения
3.5Л Фаза построения архитектуры объектно-ориентированного программного
обеспечения 71
Фаза кодирования 75
Фаза тестирования 75
Оценка параметров надежности 75
3.5.6 Модель оценки транзакциоиной надежности объектно-ориентированного
программного обеспечения 75
4 Программная реализация системы модельно-алгоритмической поддержки многоэтапного анализа надежности программных средств. Практическое
применение и анализ результатов 81
4Л Общие сведения 81
4-2 Описание системы модельно-алгоритмической поддержки многоэтапного
анализа надежности программных средств 82
4.3 Концептуальная архитектура системы модельно-алгоритмической поддержки
многоэтапного анализа надежности программных средств 82
4.3 Л Логическая структура данных 87 .
Концептуальная архитектура реализации мультиверсиоиной среды 91
Описание функционирования системы 96
4.6 Примеры решения задач и анализ результатов 99
4,6Л. Фаза создания архитектуры 99
4.62 Фазы кодирования и тестирования компонент 99
4.6.3 Фаза тестирования системы 101
4.64 Фаза эксплуатации 105
4,7, Анализ результатов 106
Заключение 107
Список использованных источников 109
Введение к работе
Современные исследования надежности систем управления и систем
обработки информации показали, что качество их работы напрямую зависит от
надежности и безотказности программного обеспечения.
За прошедшие десятилетия было создано множество методов и моделей исследования надежности программного обеспечения (ПО), однако единого подхода к решению этой проблемы предложено не было. Причиной этому является уникальность каждой программной системы. Тем не .менее, при разработке ответственных проектов, их создатели стараются в топ или иной степени получить оценку надежности ПО, как правило, на основе результатов конечных испытаний. Современные программные системы используют при работе колоссальный объем данных, проходящих через стандартные модули и функции. Поэтому, выявить все связи и пути обработки информации, даже для достаточно несложной программы, практически невозможно. Исходя из этого, детализация элементов расчета надежности (условно называемых программными модулями) должна ограничиваться законченными программными образованиями, которые, взаимодействуя между собой, составляют более сложное объединение, надежность которого нас интересует.
Основными подходами при создании отказоустойчивых систем управления и обработки информации является применение алгоритмов и моделей оценки надежности программных средств на каждом шаге жизненного цикла и использование мультиверсионного программного обеспечения.
Диссертационное исследование направлено на решение следующей научной проблемы: создание комплексного подхода для оценки надежности программных средств на основных этапах жизненного цикла; обеспечение согласованности разработанных моделей и алгоритмов оценки параметров надежности программного обеспечения на основных фазах жизненного цикла.
Уверенность в успешности решения поставленной проблемы основывается на результатах исследований таких отечественных и зарубежных учеьіьіх, как
Хорошевский В.Г., Липаев В.В., Ковалев И.ВМ Движение А.А, Боэм Б.У., Гросспитч К,Е» и др.
Целью диссертационной работы является разработка системы модельно-алгоритмической поддержки многоэтапного анализа надежности программных средств.
Для достижения поставленной цели решались следующие задачи:
- Анализ существующих методик, моделей и алгоритмов оценки.
надежности профаммпых средств.
- Анализ методик, моделей и алгоритмов оценки надежности объектно-
ориентированного программного обеспечения.
- Разработка базовой модели оценки надежности профаммного
обеспечения, которая охватывает все этапы жизненного цикла профаммпых
средств,
Формирование ряда подмоделей оценки надежности, путем модификации базовой модели,
Разработка структуры и реализация системы модельно-алгоритмической поддержки многоэтапного анализа надежности профаммпых средств.
- Применение системы при реализации реальных проектов разработки
профаммпых средств.
Методы исследования. При выполнении работы использовались математическое и вероятностное моделирование параметров сложных систем, методы оценки надежности сложных систем, элементы теории вероятностей, объектно-ориентированный анализ, теория надежности профаммного обеспечения.
Научная новизна работы:
- Создана модифицированная модель роста надежности программного
обеспечения, позволяющая получить требуемое время тестирования компонент
ПО для достижения требуемого уровня надежности.
Предложена базовая модель оценки параметров надежности. программных средств и ее модификации для оценки параметров надежности прикладного объектно-ориентированного программного обеспечения и объектно-ориентированного мультиверсионного программного обеспечения с распределенной архитектурой.
Разработан алгоритм трансформации базовой модели для оценки надежности ПО любого класса,
Предложены модель и алгоритм оценки транзакциопной надежности программного обеспечения систем обработки и хранения информации.
Реализован программный комплекс моделей и алгоритмов оценки. параметров надежности программного обеспечения на основных фазах жизненного цикла.
Значение для теории. Результаты, полученные при выполнении диссертационной работы, создают теоретическую основу для разработки моделей, методов и алгоритмов, направленных на эффективный анализ программных средств па всех фазах жизненного цикла программного обеспечения.
Практическая ценность. Разработанная в диссертации система модсльно-алгоритмической поддержки многоэтапного анализа надежности программных-средств позволяет оценивать степень отказоустойчивости программных систем, применяемых в различных областях науки и производства.
Разработанная программная система позволяет:
Рассчитать требуемое время тестирования компонент (в человеко-часах) ПО для достижения требуемого уровня надежности на ранних фазах жизненного цикла.
Решать новые задачи по оценке надежности программных средств и быстрому восстановлению сбойных компонент архитектуры ПО, используя абстрактные состояния не сбойных копонент.
Базовая модель оценки надежности применяется как для любого ПО, в том числе, объектно-ореитироваппого ПО, для мул ьти вере и он но го объектно-ориентированного ПО с распределенной архитектурой и позволяет выявлять «узкие места» в компонентах программных средств и диапазоны входных знамений, в наибольшей степени влияющие на сбои в компоненте- Данная модель также позволяет рассчитывать транзакционную надежность систем обработки информации на фазе тестирования всей системы.
Достоверность полученных результатов подтверждается тестированием и оценкой результатов применения разработанной системы в реальных проектах, а также согласованностью расчетных и экспериментальных данных.
Реализации результатов работы. При использовании системы модельно-алгоритмической поддержки многоэтапного анализа надежности программных средств был реализован модуль «Модели надежности» системы Microsoft Business Solutions-Axapta, используемый в официальном Центре Решений Microsoft Business Solutions в Красноярском крае.
Материалы диссертационной работы введены в учебные курсы и используются при чтении лекций студентам кафедры информатики Красноярского Государственного Технического Университета по дисциплине «Разработка программного обеспечения для информационно-управляющих систем».
На защиту выносятся:
- Базовая модель оценки параметров надежности программных средств.
Алгоритм трансформации базовой модели, позволяющий эффективно оценить параметры надежности ПО различных классов,
Модель и алгоритм оценки транзакционной надежности объектно-ориентированного программного обеспечения систем обработки и хранения информации,
Система модельно-алгоритмической поддержки многоэтапного анализа надежности программных средств.
Апробации работы. Основные положения и результаты работы прошли всестороннюю апробацию на всероссийских конференциях, научных семинарах и научно-практических конференциях. В том числе:
на всероссийской научно-практической конференции «Решстнсвскпе чтения», Красноярск, 2000 г,;
на всероссийской электронной научно-технической конференции, - Вологда,
2001 г..
на международной научной конференции Telematica^OOl, Санкт-Петербург, 2001г.
на научной конференции "Научно-инновационное сотрудничество", Москва,
2002 г.
- на международной научно-практической конференции СибГАУ САКС-2002,
Красноярск, 2002 г,
- на V-й всероссийской конференции с международным участием молодых
ученых и аспирантов «Новые информационные технологии. Разработка и
аспекты применения», Таганрог: ТРТУ. 2002 г.
Диссертационная работа в целом обсуждалась на научных семинарах кафедры информатики Красноярского Государственного Технического Университета (2000-2003 гг.), в Академии Microsoft Business Solutions CIS, Москва 2002 г.
Публикации. По теме диссертации опубликовано 16 печатных работ. Полный список публикаций представлен в конце автореферата.
Структура и объем работы- Диссертация состоит из введения, четырех глав, заключения и списка литературы.