автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.01, диссертация на тему:Система анализа архитектурной надежности программного обеспечения

кандидата технических наук
Новой, Александр Валерьевич
город
Красноярск
год
2011
специальность ВАК РФ
05.13.01
цена
450 рублей
Диссертация по информатике, вычислительной технике и управлению на тему «Система анализа архитектурной надежности программного обеспечения»

Автореферат диссертации по теме "Система анализа архитектурной надежности программного обеспечения"

На правах рукописи

484

НОВОЙ АЛЕКСАНДР ВАЛЕРЬЕВИЧ

СИСТЕМА АНАЛИЗА АРХИТЕКТУРНОЙ НАДЕЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

05.13.01 - Системный анализ, управление и обработка информации (космические и информационные технологии)

05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

АВТОРЕФЕРАТ

диссертации на соискание ученой степени кандидата технических наук

1 9 МАЙ 2011

Красноярск - 2011

4847432

Работа выполнена в Государственном образовательном учреждении высшего профессионального образования «Сибирский государственный аэрокосмический университет имени академика М.Ф. Решетнева», г. Красноярск.

Научный руководитель:

доктор технических наук, профессор

Ковалев Игорь Владимирович

Официальные оппоненты: доктор физико-математических наук,

профессор

Шлепкин Анатолий Константинович

доктор технических наук, профессор

Доррер Георгий Алексеевич

Ведущая организация: Самарский государственный

аэрокосмический университет

Защита состоится «02» июня 2011 года в 14 часов на заседании диссертационного совета Д 212.249.02 при Сибирском государственном аэрокосмическом университете имени академика М.Ф. Решетнева по адресу: 660014, г. Красноярск, проспект имени газеты «Красноярский рабочий», 31.

С диссертацией можно ознакомиться в научной библиотеке Сибирского государственного аэрокосмического университета имени академика М.Ф. Решетнева по адресу: 660014, г. Красноярск, ул. Чайковского, 10.

Автореферат разослан «30» апреля 2011 г.

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

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

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

Из-за огромного количества причин чрезвычайно сложно создать программное обеспечение без ошибок, а любая из них может привести к катастрофическим последствиям. Поэтому перед разработчиками ПО встает задача создания таких архитектур и методов разработки программного обеспечения, которые бы обеспечивали устойчивость к программным сбоям. Исследованиям в области обеспечения отказоустойчивости и оценки надежности программного обеспечения посвящены работы как отечественных, так и зарубежных ученых, среди них Майерс Г., Лапри Дж., Луи М., Авижиенис А., Липаев В.В., Ковалев И.В., Царев Р.Ю. и многие другие.

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

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

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

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

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

Объектом исследования является программное обеспечение, реализованное с использованием мультиверсионных программных архитектур.

Предмет исследований - архитектурная надежность мультиверсионного программного обеспечения.

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

Для достижения поставленной цели решались следующие задачи:

• анализ мультиверсионных методов проектирования отказоустойчивых программных архитектур;

• исследование существующих методов оценки надежности отказоустойчивого программного обеспечения;

• разработка методики для моделирования процесса функционирования программного обеспечение построенного на базе отказоустойчивых программных архитектур с помощью Марковских процессов с целью анализа характеристик надежности;

• разработка частных моделей базовых отказоустойчивых программных архитектур, учитывающих особенности архитектур и условия функционирования;

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

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

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

Научная новизна работы:

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

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

3. Разработаны алгоритмы, позволяющие реализовать модели базовых отказоустойчивых программных архитектур с произвольным количеством версий.

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

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

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

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

Автор за результаты, полученные при выполнении диссертационной работы и представленные на конкурс 2010 года среди аспирантов, удостоен Государственной премии Красноярского края.

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

Реализация результатов работы. Диссертационная работа выполнена в рамках тематического плана Рособразования «Многоатрибутивные модели и методы мультиверсионного формирования отказоустойчивых архитектур программного обеспечения вычислительных систем» (НИР №1.2.08).

При выполнении диссертационной работы были реализованы две программные системы, предназначенные для исследования мультиверсионных программных архитектур при проектировании отказоустойчивого прграммного обеспечения. Разработанная система «RB-Reliability ver. 1.0» позволяет оценить ряд количественных показателей надежности отказоустойчивого ПО, реализованного на основе метода блоков восстановления. В рамках системы «SA-Analysis ver. 1.0.» решена задача проектирования и анализа надежности сложного программного обеспечения.

Программные системы прошли экспертизу и зарегистрированы в Отраслевом фонде алгоритмов и программ, что делает их доступными для широкого круга специалистов в области проектирования отказоустойчивого

программного обеспечения. Также на программную систему «8А-Апа1уз15 уег.1.0.» получено Свидетельство Роспатента о государственной регистрации программ для ЭВМ.

На защиту выносятся:

1. Подход к моделированию отказоустойчивых программных архитектур на базе Марковских процессов с непрерывным временем.

2. Частные модели базовых отказоустойчивых программных архитектур.

3. Алгоритмы моделирования базовых отказоустойчивых программных архитектур.

4. Система анализа архитектурной надежности программного обеспечения.

Апробация работы. Основные положения и результаты работы прошли всестороннюю апробацию на всероссийских и международных конференциях, научных семинарах и научно-практических конференциях. В том числе: X Международной научной конференции «Решетневские чтения» (Красноярск, 2006), XI Международной научной конференции «Решетневские чтения» (Красноярск, 2007), IX Всероссийской научно-технической конференции «Теоретические и прикладные вопросы современных информационных технологий» (Улан-Удэ, 2008), V Всероссийской научно-практической конференции «Актуальные проблемы авиации и космонавтики» (Красноярск, 2009), X Всероссийской научно-технической конференции «Теоретические и прикладные вопросы современных информационных технологий» (Улан-Удэ,

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

2010), на заочной конференции РАЕ «Современные телекоммуникационные и информационные технологии» (2011), VII Всероссийской научно-практической конференции «Актуальные проблемы авиации и космонавтики» (Красноярск,

2011).

Публикации. По материалам диссертационной работы опубликовано 15 печатных работ, среди которых 5 статей в журналах, входящих в Перечень ВАК.

Структура и объем работы. Диссертация состоит из введения, четырех глав, заключения и списка литературы.

ОСНОВНОЕ СОДЕРЖАНИЕ РАБОТЫ

Во введении обоснована актуальность работы, определены цель и задачи исследования. Сформулированы основные положения, выносимые на защиту, научная новизна и практическая значимость полученных результатов.

В первой главе определены основные понятия, используемые в работе такие как «программное обеспечение», «надежность», «отказ» и «сбой».

Рассмотрены основные причины отказов программного обеспечения и подходы к обеспечению его надежности.

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

1) неполная или ошибочная спецификация;

2) отклонение от спецификации;

3) пренебрежение правилами программирования;

4) ошибочная логика или последовательность операций;

5) ошибочные арифметические операции.

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

- предотвращение ошибок - методы программирования и тестирования, позволяющие минимизировать количество ошибок в готовой программе;

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

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

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

К динамическим моделям относятся: модель Ьа Рас1и1а - вероятность безотказной работы, модели Джелинского - Моранды и Шика - Волвертона -интенсивность отказа. Статические модели: модель Коркорэна и модель Нельсона - вероятность безотказной работы.

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

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

Отказоустойчивые программные архитектуры реализуются на основе мультиверсионных методов проектирования. Эти методы предполагают

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

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

Метод блоков восстановления, КБ метод (рис. 1) использует приемочный тест, проверяющий работу версий и контрольные точки. Версии выполняются последовательно. Если тест обнаруживает сбой при выполнении версии, то выполняются повторные вычисления альтернативной версией. Контрольные точки необходимы для восстановления работоспособного состояния после сбоя и обеспечения начальными данными альтернативных версий.

Рисунок 1 - Метод блоков восстановления

А'-версионное программирование, ЫУР метод (рис. 2) предполагает разработку версий в соответствии с идентичными исходными спецификациями на проектирование. При реализации Диверсионного программного обеспечения разрабатывается специальная среда исполнения, которая предоставляет каждой версии средства конкурентного исполнения. Для выбора согласованного результата выполнения обычно используются алгоритмы голосования.

Согласованный выход

Версия N

Рисунок 2 - А'-версионное программирование 8

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

Построим модель для Диверсионного программного обеспечения с тремя версиями и алгоритмом голосования абсолютным большинством. Введем следующие обозначения: Я - вероятность безотказной работы ПО, р/, р2, рз -вероятности безотказной работы версий, рг - вероятность безотказной работы алгоритма голосования и ЛГ— число версий. Тогда 7? вычисляется по формуле:

И = ру(р ¡Р2 + Р:Рз + РгРз - 2р:р2рз)-

Если версии имеют одинаковую вероятность безотказной работы, то вероятность безотказной работы ПО рассчитывается по формуле:

/=0

где к = сеИ((Ы+\)12) - минимальное число версий возвращающих верный результат, сеН() - оператор округления до наибольшего целого числа, С - число сочетаний.

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

Д =/>«<!-(1-/>/)(1-/>Ж1-Рз)).

Для любого N надежность программного обеспечения:

г п \

Я = ру

1-П0-Л)

Зависимость надежности ПО от надежности его версий и алгоритма голосования представлена на рисунке 3, при условиях: Р1=Р2=РЗ~Р4=Р5=Р, N = 5, ру = 0.9, кривая 1 - используется универсальный алгоритм голосования, кривая 2 - голосование абсолютным большинством. Как и следовало ожидать

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

а 0.5 -

Рисунок 3 - Изменение вероятности безотказной работы ПО в зависимости от алгоритма голосования

Построим модель программного обеспечения с тремя блоками (версиями) восстановления. Как и прежде R - вероятность безотказной работы, ph р2, рз -вероятности безотказной работы версий, рАт~ вероятность безотказной работы приемочного теста, N - число версий. Тогда получим:

R=PiPa т + ((1- рдрл т+Pi{ 1 ■-Ра г)) РгРл т + ((1- Pi)Pa Л1" Рг)Рлт + + (I-Pi)PatPi(1-Pat) + Pi(l-Рат)(1-Р2)Рат+pi(l-pat) p2(l-pat)) РзРат ■

При любом N обобщенная формула для вероятности безотказной работы программного обеспечения с блоками восстановления:

N j-1

R = ILPiPatYW - Pi)PAT + а(1 - Pat))-l м

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

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

Переход программного обеспечения из состояния в состояние происходит под действием потоков отказов и восстановления версий. Данные потоки

10

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

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

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

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

Мультиверсионная программная архитектура с блоками восстановления (ИВ архитектура). Введем следующие обозначения:

Яу - интенсивность отказов у-ой версии, причем - интенсивность

выявленных отказов и Я^ - интенсивность не обнаруженных отказов;

V) - интенсивность восстановления у'-ой версии;

(/¡5/) - состояние системы, в котором у - номер подключенной (выполняемой) версии, - булев вектор размерности N

характеризует работоспособность версий, если я,у = 1, то у версия работоспособна, если б у = 0, тоу версия в состоянии отказа, /' = 1,2Д ;

1.,.)(0 - вероятность нахождения системы в состоянии (у !■$,•) в момент времени ?;

я* - вектор отличающийся от вектора Я; к-ой координатой:

о, - число отказавших версий в состоянии 5, , / = 1,2Л .

Общее число состояний (М) равно:

Функционирование программной архитектуры происходит следующим образом: в начальный момент времени все версии находятся в исправном состоянии, данные на обработку подаются на первую версию. С интенсивностью Л\ она отказывает. При обнаружении отказа (Л.У) версия

мгновенно заменяется на вторую версию (резервную), а отказавшая восстанавливается. После восстановления версия считается восстановившей работоспособность и переходит в резерв. В случае отказа второй версии, который произойдет с интенсивностью Л г, входящий поток данных для обработки снова перенаправляется на резервную версию. Отказавшая версия заменяется на резервную с меньшим порядковым номером. Если в резерве не осталось версий наступает отказ ПО. На рисунке 4 представлена модель программной архитектуры с двумя блоками восстановления.

(1[1,1)

(2|1,1)

РШ) (*) ~ г 2 ^щ.о)

4м>(0=П^чвдЮ - + ^1.0) (0 = Мж» С) -(А + ^111,0) (О

= -Йш) (О - (4 + %,0)(О =

/Ьвд (0 = Л-^ЗОД)^)

%1) (0) = (0) = 0.....Р(Ш) (0) = о.

б)

Рисунок 4 - Модель ЛВ архитектуры с двумя версиями: а) граф состояний; б) система дифференциальных уравнений

(2|0,0)

а)

Для построения модели программной архитектуры при большем количестве версий, например 5, потребуется составить 160 уравнений, что является трудоемкой задачей. Разработан алгоритм моделирования ЯВ архитектуры с произвольным числом версий:

Алгоритм 1.

Шаг 1. Положим /=1,1=1.

Шаг 2. Если о, = Ы, то (!) = О и переход к шагу 6.

Шаг 3. Если 5,у = 0, то = и переход к шагу 6.

Шаг 4. Если ^ = 1, то А= 1 и выполняются шаги 4.1-4.3. Шаг 4.1. Если 5,*= 0, то добавляется ,(/)», и определяется

наименьшее к: = 1, / = 1,ЛГ. Если / = у, то добавляется «ЯкР' (.(/)». Шаг4.2. Если ¿,¿=1 и к * у, то добавляется ,(/)».

Шаг 4.3. Если к<М, то и переход к шагу 4.1.

Шаг 4.4. Если ог, = N-1, то добавляется «-Я,/5, , ,(/)».

' ОМ

Шаг 5. Составляется уравнение для состояния

Шаг 6. Если 1<2Ы/'=/+1 и переход к шагу 3, иначе шаг 7. Шаг 7. Еслито1, /=1 и переход к шагу 3.

К'-еерсионная программная архитектура. В данном случае для описания состояний системы будет использоваться вектор . Как отмечалось в третьей главе, архитектура представляет собой параллельное выполнение N версий. Для каждой версии заданы интенсивности отказов Х] и интенсивности

восстановления V,, у = 1,N. Общее число состояний определяется по формуле:

М = 2Ы

Представим процесс функционирования ШР архитектуры в виде графа состояний и дифференциальных уравнений (рис. 5).

(0,1,1)

(0,0.1)

а.1.0)

Аи) (0 = (0 + ^1,ОД)(0 +1 Яи,0) (0 --(4 + л + ^УЪдЮ

^0,1,1) (0 = ЛЗш)<9 ~ 0'1 + 4 + (О (О = -Мил (О - (4 + "2 + (О

' = + к + 'з)^.1,о)(0

= + ^-^0,1,1) (О

^(0,1,0) (?) = Л-^1,1,0) (О + ^■3-^(0.1,1)^)

= Л-^и.0) (0 + Мюл ® ^1.1,1) (0) = Мал.» (0) = 0.... = 0

б)

Рисунок 5 - Модель ЫУР архитектуры с тремя версиями: а) граф состояний; б) система дифференциальных уравнений.

(1.0.0)

Как и для КВ архитектуры, разработан алгоритм моделирования Диверсионной программной архитектуры с произвольным числом версий:

Алгоритм 2.

Шаг 1. Положим ;=1, /'=2.

Шаг 2. Если / * j, то шаг 3, иначе шаг 9.

n n

Шаг3.Рассчитать: /_о = •

Ы к= 1

■U>V Si "•'•',.<

Шаг 4. Если f _о-0 и 0, тогда шаг 5 и 6, иначе, если и

/_/ = 0, тогда шаг 7 и 8.

Шаг 5. Если о. < JV-1 и /" / = 1, то вычислить /* = min Ut f и добавить

7 lStSAf1- '

slk<sjk

«Л.Р (О».

Шаг 6. Если о, < N -1 и f / = 1, то вычислить Г = min At} и добавить

s,k<sjk

«-V.P (О».

I S/

Шаг 7. Если о, < Л' -1 и f о = 1,то вычислить /* = min /L [ и добавить

s,k>sjk

«V.P (О».

Шаг 8. Если о, < jV -1 и / о = 1, то вычислить /* = min А,.! и добавить

1<*<;ЛГ1

«-Л.Р (/)».

Шаг 9. Если]<М, тоу=у+1 и переход к шагу 2, иначе шаг 10. Шаг 10. Составляется уравнение для состояния я, . Шаг 11. Если \<М, то /=/+1 и у-1 и переход к шагу 3.

При разработке версий ПО достичь разнообразия версий не всегда удается, в этом случае при проектировании Диверсионной программной архитектуры и оценке ее надежности необходимо учитывать межверсионные ошибки. Чтобы учесть подобные ошибки, нужно знать интенсивность одновременного отказа нескольких версий. Интенсивность отказов в момент времени I вычисляется по формуле:

Р(0

где /(I) - плотность распределения времени безотказной работы, Р(!) -вероятность безотказной работы. Рассматривая стационарный режим, получим следующую формулу:

НтЛ(/) = X, где X - тт(Л}.

(-»ос ¡=1Л

Таким образом, интенсивность одновременного отказа версий при t—*co является постоянной величиной и равна минимальной интенсивности отказа из рассматриваемых версий.

Таким образом, модификация алгоритма №2 с учетом межверсионных ошибок состоит в том, что условия /_/ = 1 и /_о = 1 на шагах 5 и 8

соответственно опускаются, а число состояний становится равным M = 2N :

Шаг 5. Если о, < N -1, то вычислить Г = min \At} и добавить « Л.Р (/) ».

3 1 ik<ny lsi

Шаг 8. Если o,<N-\, то вычислить /* = min üt ( и добавить

' 1<*<Л'1

sik>sjk

«-Л.Р (О».

I Si

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

Разработанная программная система «SA-Analysis» представляет собой среду проектирования высоконадежного отказоустойчивого программного обеспечения, в состав которого могут входить мультиверсионные программные архитектуры. Программная система позволяет не только спроектировать будущее ПО, но и оценить его надежность.

Среда проектирования и анализа архитектурной надежности имеет удобный пользовательский интерфейс. Пользователь в диалоговом режиме работает со средой, выбирая количество модулей, вид мультиверсионной архитектуры, число мультиверсий и их характеристики. В программе реализован многофункциональный графический редактор на основе OpenGL, который позволяет пользователю спроектировать архитектуру будущего программного средства любой сложности. Графический редактор содержит объекты аналогичные отказоустойчивым архитектурам, что облегчает процесс проектирования, а реализованные в программе алгоритмы дают возможность оценить надежность конвейерного или монолитного программного обеспечения. Основные модули и процедуры программной системы приведены в таблице 1.

Программная система предназначена для работы в двух режимах:

• расчет вероятности безотказной работы программного обеспечения при известных вероятностях безотказной работы версий;

• расчет вероятности безотказной работы программного обеспечения при известных интенсивностях отказа и восстановления версий.

Таблица 1 - Основные модули и процедуры программной системы

Модуль Описание/назначение

SAmain Основной модуль программы. Обеспечивает управление и взаимодействие между компонентами.

GLdesign Среда проектирования. Обеспечивает возможность пользователю разрабатывать различные архитектуры ПО с использованием предложенных графических объектов.

Процедуры DesignNVPQ Графическое представление МУР архитектуры.

DesignRB() Графическое представление ВВ архитектуры.

DesignVer() Графическое представление монолитного модуля или ПО.

GLgraf Модуль построения графа состояний для отказоустойчивых архитектур.

Процедуры GrafNVP() Граф состояний МУР архитектуры.

GrafRBQ Граф состояний ВВ архитектуры.

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

Процедуры SystemNVP() Алгоритм для ЫУР архитектуры.

SystemRB() Алгоритм для ЯВ архитектуры.

SAreliability Модуль, предназначенный для оценки надежности ПО.

Процедуры rNVP(), rRB(), rVer() Оценка надежности КУР, ЯВ архитектуры и монолитного модуля соответственно при заданных интенсивностях отказа и восстановления.

PNVP(), pRB() Оценка надежности МУР и ЯВ архитектуры соответственно при заданных вероятностях отказа.

На рисунке 6 представлена программная система «SA-Analysis».

Для определения корректности работы программной системы были выполнены тестовые испытания с различными архитектурами и параметрами версий. Результаты некоторых испытаний представлены ниже.

На рисунке 7 представлен график изменения вероятности безотказной работы ПО с тремя модулями, каждый из которых реализован с использованием NVP архитектуры с тремя равнонадежными версиями с интенсивностью отказа равной 0,00004 1/ч и интенсивностью восстановления 0,1 1/ч. Подобного вида программные архитектуры применяются, в частности, в системах управления полетом Boeing.

Рисунок 7 - Вероятность безотказной работы ПО с тремя модулями

Программная система «8А-Апа1у81з» позволила сравнить ЯВ и ИУР методы, исходные данные представлены в таблице 2, результаты приведены на рисунке 8.

Таблица 2 - Исходные данные

Параметры ЯВ Параметры МУР

№ версии Отказ (1) Отказ (2) Восстановление Отказ Восстановление

1 0,01 0,0001 1 0,01 1

2 0,01 0,0001 2 0,01 2

3 0,02 0,0001 2 0,02 2

4 0,01 0,0001 0,4 0,01 0,4

5 0,01 0,0001 0,1 0,01 0,1

Надежность ЯВ архитектуры выше ИУР при тех же интенсивностях отказа и восстановления. Однако как видно на рисунке 8, где приведены три графика: 1 - для МУР архитектуры, 2 - при отсутствии ошибок второго типа, 3 — при интенсивности ошибок второго типа 0,0001, даже незначительное число ошибок второго типа существенно снижает надежность ПО.

■ 0.9 0,8 0,7 06 Вероятность безотказной работы ............................................... - №/Р(5)

......... |||Ш§ 1ВД

.............1.............: ................:...... ' :

0.5 0.4 .............1.................Я ...... ; - ..... ..„.„.„.;.„_____

0.3 0.2 0.1 , ;......... : I ; ! .И Г"гт ■Щ .............................•;........ • ----...........- -.....; • :-

0 20 ООО 40 009 60000 8000 0 1 00000 1 120 000 140 000

■V. ' -г .ДД Время §11в11Р1в1Яв1

Рисунок 8 - Вероятность безотказной работы А'УР и ЯВ архитектуры с пятью версиями

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

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

В заключении сформулированы основные результаты и выводы, полученные в диссертационной работе.

ОСНОВНЫЕ РЕЗУЛЬТАТЫ И ВЫВОДЫ

• Проанализированы мультиверсионные методы проектирования отказоустойчивых программных архитектур. Анализ выявил особенности программных архитектур, которые необходимо учитывать при их практической реализации.

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

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

• Разработаны частные модели базовых отказоустойчивых программных архитектур. Модели учитывают особенности программных архитектур и условия функционирования ПО.

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

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

СПИСОК ПУБЛИКАЦИЙ ПО ТЕМЕ ДИССЕРТАЦИИ

Публикации в изданиях, рекомендованных ВАК РФ:

1 Ковалев, И. В. Расчет надежности отказоустойчивых архитектур программного обеспечения [Текст] / И. В. Ковалев, А. В. Новой // Вестник СибГАУ. - 2007. - № 4(17). - С. 14-17.

2 Новой, A.B. Модификация NVP архитектуры с невосстанавливаемыми компонентами [Текст] / А. В. Новой // Вестник СибГАУ. - 2008. - № 2(19). - С. 75-77.

3 Ковалев, И. В. Оценка надежности мультиверсионной программной архитектуры систем управления и обработки информации [Текст] / И. В. Ковалев, А. В. Новой, А. В. Штенцель // Вестник СибГАУ. - 2008. - № 3(20). -С. 50-52.

4 Ковалев, И. В. Анализ надежности программной архитектуры с учетом одновременного отказа компонентов [Текст] / И. В. Ковалев, А. В. Новой // Приборы. - 2009. - № 7(109). - С. 26-30.

5 Новой, А. В. Применении теории Марковских процессов к анализу надежности отказоустойчивого программного обеспечения [Текст] / А. В. Новой // В мире научных открытий. - Красноярск : Научно-ииновационный центр, 2011. - № 1(13). - С. 22-26.

Публикации в других изданиях:

6 Новой, А. В. Система моделирования отказоустойчивой архитектуры программного обеспечения [Текст] / А. В. Новой ; Вестник НИИ СУВПТ. -Вып.7(21). - Красноярск : НИИ СУВПТ, 2006. - С. 141-145.

7 Новой, А. В. Система формирования отказоустойчивой архитектуры программного обеспечения [Текст] / А. В. Новой // Материалы X Междунар. науч. конф. «Решетневские чтения». Сиб. гос. аэрокосмич. ун-т. Красноярск,

2006.-С. 254-255.

8 Новой, А. В. Модель функционирования программного обеспечения с блоками восстановления [Текст] / А. В. Новой // Материалы XI Междунар. науч. конф. «Решетневские чтения». Сиб. гос. аэрокосмич. ун-т. Красноярск,

2007. - С. 248-249.

9 Новой, А. В. Моделирование программного обеспечения с блоками восстановления [Текст] / А. В. Новой // Материалы IX Всероссийской научно-технической конф. «Теоретические и прикладные вопросы современных информационных технологий». Улан-Удэ : ВСГТУ, 2008. С. 80-83.

10 Новой, А. В. Влияние одновременных отказов на надежность отказоустойчивого программного обеспечения [Текст] / А. В. Новой // Актуальные проблемы авиации и космонавтики. Всерос. научн.-практ. конф. студентов, аспирантов и молодых специалистов. Красноярск : СибГАУ, 2009. С. 278.

11 Новой, А. В. Анализ надежности программной архитектуры с блоками восстановления и неидеальным приемочным тестом [Текст] / А. В. Новой // Материалы X Всероссийской научно-технической конф. «Теоретические и прикладные вопросы современных информационных технологий». Улан-Удэ : ВСГТУ, 2009. С. 276-280.

12 Новой, А. В. М-версионная программная архитектура с динамической структурой [Электронный ресурс]. Режим доступа http://econf.rae.ru/pdf/2011/03/94.pdf.

Зарегистрированные программные системы

13 Ковалев, И. В. Система расчета надежности программного обеспечения с блоком восстановления (Программная система «RB-Reliability ver.1.0.») / И. В. Ковалев, А. В. Новой, Р. Ю. Царев. - М. : ВНТИЦ, 2006. - № гос. per. 50200600852.

14 Новой, А. В. Система проектирования и анализа архитектурной надежности программных средств (Программная система «SA-Analysis ver.1.0.») / А. В. Новой, И. В. Ковалев. - М. : ВНТИЦ, 2008. - № гос. per. 50200600852.

15 Новой, А. В. Система проектирования и анализа архитектурной надежности программных средств (Программная система «SA-Analysis ver.1.0.») / А. В. Новой, И. В. Ковалев, И. Н. Кардан, А. Н. Лайков, С. Н. Гриценко. - М.: Роспатент, 2009. - № гос. per. 2009614394.

Новой Александр Валерьевич

Система анализа архитектурной надежности программного обеспечения

Автореферат

Подписано в печать Формат 60x84/16

Уч. изд. л. 1.0 Тираж 100 экз. Заказ № 172

Отпечатано в типографии «Печатный двор», г. Красноярск, ул. Марковского, 19.

Оглавление автор диссертации — кандидата технических наук Новой, Александр Валерьевич

ВВЕДЕНИЕ.

1. Разработка надежного программного обеспечения.

1.1 .Надежность программного обеспечения. Основные понятия и причины ошибок.

1.2.Подходы к обеспечению надежности программного обеспечения.

1.2.1. Предотвращение ошибок.

1.2.2. Обнаружение и исправление ошибок

1.2.3. Устойчивость к ошибкам.

1.3.Модели надежности программного обеспечения.

1.3.1. Динамические модели надежности.

1.3.2. Статические модели надежности.

ВЫВОДЫ.

2. Различные подходы к моделированию отказоустойчивых программных архитектур.

2.1.Мультиверсионные методы проектирования отказоустойчивых архитектур.

2.1.1. Общая характеристика мультиверсионных методов.

2.1.2. Метод блоков восстановления.

2.1.3. Диверсионное программирование.

2.1.4. Гибридные мультиверсионные методы.

2.2. Моделирование отказоустойчивых программных архитектур.

2.2.1. Имитационное моделирование.

2.2.2. Метод, основанный на классических теоремах теории вероятностей.

2.2.3. ГЕРТ-сетевой анализ отказоустойчивых программных архитектур.

2.2.4. Применение Марковских процессов для анализа надежности мультиверсионного программного обеспечения.

ВЫВОДЫ.

3. Математические модели отказоустойчивых программных архитектур.

3.1 .Блоки восстановления.

3.1.1. Схема функционирования программной архитектуры с блоками восстановления.

3.1.2. Алгоритм моделирования iiS архитектуры.

3.1.3. Модель надежности RB архитектуры с постоянной вероятностью безотказной работы версий.

3.2. Диверсионное программирование.

3.2.1. Схема функционирования Диверсионной программной архитектуры.

3.2.2. Алгоритм моделирования NVP архитектуры.

3.2.3. Межверсионные ошибки.

3.2.4. Модель надежности NVP архитектуры с постоянной вероятностью безотказной работы версий.

ВЫВОДЫ.

4. Программная реализация системы анализа архитектурной надежности.

4.1. Описание программной системы «SA-Analysis».

4.2. Руководство программиста.

4.3. Примеры решения задач и анализ результатов.

Введение 2011 год, диссертация по информатике, вычислительной технике и управлению, Новой, Александр Валерьевич

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

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

Из-за огромного количества причин чрезвычайно сложно создать программное обеспечение без ошибок, а любая из них может привести к катастрофическим последствиям. Поэтому перед разработчиками ПО встает задача создания таких архитектур и методов разработки программного обеспечения, которые бы обеспечивали устойчивость к программным сбоям. Исследованиям в области обеспечения отказоустойчивости и оценки надежности программного обеспечения посвящены работы как отечественных, так и зарубежных ученых, среди них Майерс Г., Лапри Дж., Луи М., Авижиенис А., Липаев В.В., Ковалев И.В., Царев Р.Ю. и многие другие.

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

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

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

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

Объектом исследования является программное обеспечение, реализованное с использованием мультиверсионных программных архитектур.

Предмет исследований — архитектурная надежность мультиверсионного программного обеспечения.

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

Для достижения поставленной цели решались следующие задачи:

• анализ мультиверсионных методов проектирования отказоустойчивых программных архитектур;

• исследование существующих методов оценки надежности отказоустойчивого программного обеспечения;

• разработка методики для моделирования процесса функционирования программного обеспечение построенного на базе отказоустойчивых программных архитектур с помощью Марковских процессов с целью анализа характеристик надежности;

• разработка частных моделей базовых отказоустойчивых программных архитектур, учитывающих особенности архитектур и условия функционирования;

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

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

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

Научная новизна работы:

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

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

3. Разработаны алгоритмы, позволяющие реализовать модели базовых отказоустойчивых программных архитектур с произвольным количеством версий.

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

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

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

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

Автор за результаты, полученные при выполнении диссертационной работы и представленные на конкурс 2010 года среди аспирантов, удостоен Государственной премии Красноярского края.

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

Реализация результатов работы. Диссертационная работа выполнена в рамках тематического плана Рособразования «Многоатрибутивные модели и методы мультиверсионного формирования отказоустойчивых архитектур программного обеспечения вычислительных систем» (НИР №1.2.08).

При выполнении диссертационной работы были реализованы две программные системы, предназначенные для исследования мультиверсионных программных архитектур при проектировании отказоустойчивого прграммного обеспечения. Разработанная система «RB-Reliability ver. 1.0» позволяет оценить ряд количественных показателей надежности отказоустойчивого ПО, реализованного на основе метода блоков восстановления. В рамках системы «SA-Analysis ver.1.0.» решена задача проектирования и анализа надежности сложного программного обеспечения.

Программные системы прошли экспертизу и зарегистрированы в Отраслевом фонде алгоритмов и программ, что делает их доступными для широкого круга специалистов в области проектирования отказоустойчивого программного обеспечения. Также на программную систему «SA-Analysis ver.1.0.» получено Свидетельство Роспатента о государственной регистрации программ для ЭВМ.

На защиту выносятся:

1. Подход к моделированию отказоустойчивых программных архитектур на базе Марковских процессов с непрерывным временем.

2. Частные модели базовых отказоустойчивых программных архитектур.

3. Алгоритмы моделирования базовых отказоустойчивых программных архитектур.

4. Система анализа архитектурной надежности программного обеспечения.

Апробация работы. Основные положения и результаты работы* прошли всестороннюю апробацию на всероссийских и международных конференциях, научных семинарах и научно-практических конференциях. В том числе: X Международной научной конференции «Решетневские чтения» (Красноярск, 2006), XI Международной- научной конференции «Решетневские чтения» (Красноярск, 2007), IX Всероссийской научно-технической конференции «Теоретические и прикладные вопросы современных информационных технологий» (Улан-Удэ, 2008), V Всероссийской научно-практической конференции «Актуальные проблемы авиации и космонавтики» (Красноярск, 2009), X Всероссийской научно-технической конференции «Теоретические и прикладные вопросы современных информационных технологий» (Улан-Удэ, 2009), заседании экспертной комиссии по рассмотрению работ, предоставленных на соискание Государственной премии Красноярского края для поощрения аспирантов и докторантов образовательных учреждений высшего и послевузовского профессионального образования (Красноярск, 2010), на заочной конференции РАЕ «Современные телекоммуникационные и информационные технологии» (2011), VII Всероссийской научно-практической конференции «Актуальные проблемы авиации и космонавтики» (Красноярск, 2011).

Публикации. По материалам диссертационной работы опубликовано 15 печатных работ, среди которых 5 статей в журналах, входящих в Перечень ВАК.

Структура и объем работы. Диссертация состоит из введения, четырех глав, заключения и списка литературы.

Заключение диссертация на тему "Система анализа архитектурной надежности программного обеспечения"

ЗАКЛЮЧЕНИЕ

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

• Проанализированы мультиверсионные методы проектирования отказоустойчивых программных архитектур. Анализ выявил особенности программных архитектур, которые необходимо учитывать при их практической реализации.

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

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

• Разработаны частные модели базовых отказоустойчивых программных архитектур. Модели учитывают особенности программных архитектур и условия функционирования ПО.

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

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

Результаты тестирования программы «S A-Analysis» подтвердили правильность разработанных моделей и алгоритмов, а также высокую эффективность мультиверсионных методов проектирования отказоустойчивых программных архитектур. s

Библиография Новой, Александр Валерьевич, диссертация по теме Системный анализ, управление и обработка информации (по отраслям)

1. Андронов, А. М. Теория вероятностей и математическая статистика Текст. / А. М. Андронов, Е. А. Копытов, JL Я. Гринглаз. СПб. : Питер, 2004.-461 с.

2. Антонов, А. В. Системный анализ Текст. : учеб. для вузов / А.В. Антонов. М. : Высш. шк., 2004. - 454 с.

3. Апполонов, И. В. Надежность невосстанавливаемых систем однократного применения Текст. / И. В. Апполонов, Н. А. Северцев. М. : Машиностроение, 1977. — 212 с.

4. Архитектурная надежность программного обеспечения информационно-телекоммуникационных технологий Электронный ресурс. — Режим доступа: www.rae.ru/zk/ari/2005/05/degtvarev.pdf

5. Бахвалов, Н. С. Численные методы Текст. / Н. С. Бахвалов, Н. П. Жидков, Г. М. Кобельков. 3-е изд. - М. : Бином. Лаборатория знаний, 2004. - 636 с.

6. Баяковский, Ю. М. Графическая библиотека OpenGL Текст. i : учебно-методическое пособие / Ю. М. Баяковский, А. В. Игнатенко, А. И. Фролов. М. : Издательский отдел факультета ВМК МГУ им. Ломоносова, 2003. - 132 с.

7. Благо датских, В. А. Стандартизация разработки программных средств Текст. / В. А. Благодатских, В. А. Волнин, К. Ф. Поскакалов ; под ред. О. С. Разумова. М. : Финансы и статистика, 2006. - 288 с.

8. Борсоев, В. А. Надежность авиационного оборудования Текст. / В. А. Борсоев, В. С. Новиков ; Сиб. гос. аэрокосмич. ун-т. — Красноярск, 2005. -100 с.

9. Боэм, Б. У. Инженерное проектирование программного обеспечения Текст. / Б. У. Боэм ; пер. с англ. — М. : Радио и связь, 1985. — 512 с.

10. Василенко, H. В. Модели оценки надежности программного обеспечения Текст. / Н. В. Василенко, В. А. Макаров // Вестник НовГУ. 2007. - № 28.-С. 126-132.

11. Васильев, С. A. OpenGL. Компьютерная графика Текст. : учебное пособие / С. А. Васильев. Тамбов : Изд-во Тамб. гос. техн. ун-та, 2005. -80 с.

12. Вентцель, Е. С. Теория вероятностей Текст. / Е. С. Вентцель. М. : Высш. шк., 1998. - 576 с.

13. Вентцель, Е. С. Теория случайных процессов и ее инженерные приложения Текст. / Е. С. Вентцель, JI. А. Овчаров, 2-е изд. М. : Высш. шк., 2000. - 383 с.

14. Вигерс, К. И. Разработка требований к программному обеспечению Текст. / К. И. Вигерс ; перевод с англ. — М. : Издательско-торговый дом «Русская Редакция», 2004. 576 с.

15. Волков, JI. И. Надежность летательных аппаратов Текст. / JI. И. Волков, А. М. Шишкевич. М. : Высш. шк., 1975. - 296 с.

16. Выгодский, М. Я. Справочник по высшей математике Текст. / М. Я. Выгодский. М. : «Джангар», 2001. - 864 с.

17. Гагарина, JI. Г. Технология разработки программного обеспечения: учебное пособие Текст. / Л. Г. Гагарина, Е. В. Кокорева, Б. Д. Виснадул ; под ред. Л. Г. Гагариной. М. : ИД «ФОРУМ»: ИНФРА-М, 2008. - 400 с.

18. Гецци, К. Основы инженерии программного обеспечения Текст. / К. Гецции, М. Джазайери, Д. Мандриоли, 2-е изд. : пер. с англ. СПб. : БХВ-Петербург, 2005. - 832 с.

19. Гмурман, В. Е. Теория вероятностей и математическая статистика Текст. / В. Е. Гмурман. М. : Высшая школа. - 2004. - 480 С.

20. ГОСТ 19781-90. Обеспечение систем обработки информации программное. Термины и определения Текст. — Введ. 1992-01—01. — М. : Изд-во стандартов, 2005. 16 с.

21. ГОСТ 28806-90. Качество программных средств. Термины и определения Текст. Введ. 1992-01-01. - М. : Изд-во стандартов, 1991. - 12 с.

22. Доррер, Г.А. Методы анализа вычислительных систем Текст. : Учеб. пособие для студентов направления 552800 и специальности 220400 всех форм обучения / Г. А. Доррер. Красноярск, СибГТУ, 2000 г.

23. Дынкин, Е. Б. Управляемые Марковские процессы и их приложения Текст. / Е. Б. Дынкин, А. А. Юшкевич. М.: Наука, 1975. - 341 с.

24. Емелин, Н. М. Отработка систем технического обслуживания лететельных аппаратов Текст. / Н. М. Емелин. М. : Машиностроение, 1995.- 128 с.

25. Ильин, В. А. Основы математического анализа Текст. / В. А. Ильин, Э. Г. Позняк : в 2 ч. Часть I: Учеб. для вузов. — 5-е изд. М. : Наука. Физматлит, 2000.-616 с.

26. Канер, С. Тестирование программного -обеспечения. Фундаментальные коцепции менеджмента бизнес-приложений Текст. / С. Канер, Д. Фолк, Е. К. Нгуен. К.: Издательство «ДиаСофт», 2001. - 544 с.

27. Кемени, Дж. Конечные цепи Маркова Текст. / Дж. Кемени, Дж. Снелл. — М. : Наука, 1970. 272 с.

28. Ковалев, И. В. Анализ надежности программной архитектуры с учетом одновременного отказа компонентов Текст. / И. В. Ковалев, А. В. Новой // Приборы. 2009. - № 7(109). - С. 26-30.

29. Ковалев, И. В. Оценка надежности мультиверсионной программной архитектуры систем управления и обработки информации Текст. / И. В. Ковалев, А. В. Новой, А. В. Штенцель // Вестник СибГАУ. 2008. - № 3(20).-С. 50-52.

30. Ковалев, И. В. Расчет надежности отказоустойчивых архитектур программного обеспечения Текст. / И. В. Ковалев, А. В. Новой // Вестник СибГАУ. 2007. - № 4(17). - С. 14-17.

31. Ковалев, И. В. Система расчета надежности программного обеспечения с блоком восстановления (Программная система «RB-Reliability ver.1.0.») /

32. И. В. Ковалев, А. В. Новой, Р. Ю. Царев. М. : ВНТИЦ, 2006. - № гос. per. 50200600852.

33. Ковалев, П. В. ГЕРТ-анализ мультиверсионных программных архитектур•информационно-управляющих систем Текст. : автореферат дис: . канд. тех. наук : 05.13.01, 05.13.11 / Ковалев Павел Владимирович. -Красноярск, 2010. -22 с.

34. Ковалев, П. В. Графоаналитический метод анализа мультиверсионных архитектур программного Текст. / П. В. Ковалев, И. А. Капчинский, С. Н. Гриценко // Вестник СибГАУ. Вып.3(24). Красноярск, 2009. - С. 3739.

35. Ковалев, П. В. ГЕРТ-сетевой анализ мультиверсионных архитектур программного обеспечения Текст. / П. В. Ковалев // Журнал «Успехи современного естествознания» №9, 2009. С. 161-164.

36. Котенок, А. В. Мультиверсионная среда исполнения для отказоустойчивых программных комплексов систем управления Текст. : автореферат дис. . канд. тех. наук : 05.13.01, 05.13.11 / Котенок Андрей Владимирович. Красноярск, 2009. - 22 с.

37. Котенок, А. В. К проблеме выбора мультиверсионной модели повышения надежности программного обеспечения Текст. / А. В. Котенок // Вестник СибГАУ. 2008. - Вып. 4(21). - С. 72-75.

38. Липаев, В. В. Анализ и сокращение рисков проектов сложных программных средств Текст. / В. В. Липаев. М. : СИНТЕГ, 2005. - 224 с.

39. Липаев, В. В. Качество программного обеспечения Текст. / В. В. Липаев. М. : Финансы и статистика, 1983. — 263 с.

40. Липаев, В. В. Надежность программных средств Текст. / В. В. Липаев. — М. : Синтег, 1998.-220 с.

41. Липаев, В. В. Сопровождение и управление конфигурацией сложных программных средств Текст. / В. В. Липаев. М. : СИНТЕГ, 2006. - 372 с.

42. Липаев, В. В. Программная инженерия. Методологические основы Текст. / В. В. Липаев. М.: ТЕИС, 2006. - 608 с.

43. Майерс, Г. Искусство тестирования программ Текст. / Г. Майерс ; перевод с англ. под ред. Б. А. Позина. М. : Финансы и статистика, 1982.- 176 с.

44. Майерс, Г. Надежность программного обеспечения Текст. / Г. Майерс ; перевод с англ. Ю. Ю. Галимова ; под ред. В. Ш. Кауфмана. — М. : Мир, 1980.-360 с.

45. Морозов В. А. Модификация алгоритма голосования ТчГУР-СУ для одного вида матриц согласования Текст. / В. А. Морозов // Вестник СибГАУ.- 2007.-№ 1.с. 81-87.

46. Нефедов, В. Н. Курс дискретной математики Текст. / В. Н. Нефедов, В. А. Осипов. М.: Изд-во МАИ, 1992. - 264 с.

47. Нечипоренко, В. И. Структурный анализ и методы построения надежных систем Текст. / В. И. Нечипоренко. — М. : Изд-во «Советское радио», 1968.-256 с.

48. Новой, А. В. Модель функционирования программного обеспечения с блоками восстановления Текст. / А. В. Новой // Материалы XI Междунар. науч. конф. «Решетневские чтения». Сиб. гос. аэрокосмич. унт. Красноярск, 2007. С. 248-249.

49. Новой, A.B. Модификация NVP архитектуры с невосстанавливаемыми компонентами Текст. / А. В. Новой // Вестник СибГАУ. — 2008. № 2(18).-С. 81-87.

50. Новой, А. В. Применении теории Марковских процессов к анализу надежности отказоустойчивого программного обеспечения Текст. / А. В. Новой // В мире научных открытий. Красноярск : Научно-ииновационный центр, 2011. - № 1(13). - С. 22-26.

51. Новой, А. В. Система моделирования отказоустойчивой архитектуры программного обеспечения Текст. / А. В. Новой ; Вестник НИИ СУВПТ. Вып.7(21). - Красноярск : НИИ СУВПТ, 2006. - С. 141-145.

52. Новой, А. В. Система проектирования и анализа архитектурной надежности программных средств (Программная система «SA-Analysis ver.1.0.») / А. В. Новой, И. В. Ковалев. М. : ВНТИЦ, 2008. - № гос. per. 50200600852.

53. Новой, А. В. Система формирования отказоустойчивой архитектуры программного обеспечения Текст. / А. В. Новой // Материалы X Междунар. науч. конф. «Решетневские чтения». Сиб: гос. аэрокосмич. унт. Красноярск, 2006. С. 254-255.

54. Новой, А. В. N-версионная программная архитектура с динамической структурой, Электронный ресурс. Режим доступа« http://econf.rae.ru/pdfy2011/03/94.pdf.

55. Поздняков, Д.А. Разработка и исследование среды мультиверсионного исполнения программных модулей. / Д. А. Поздняков, И. С. Титовский, Р. В. Юнусов // Вестник НИИ СУВПТ: Сб. научн. трудов. Красноярск: НИИ СУВПТ. - 2003. Выпуск 13. - С. 155-170.

56. Половко, А. М. Основы теории надежности Текст. / А. М. Половко, С. В. Гуров, 2-е изд., перераб. и доп. СПб. : БХВ-Петербург, 2006. - 704 с.

57. Разгонный блок свел спутник с орбиты Электронный ресурс. Режим доступа http://www.gazeta.ru/politics/2011/02/21 kz 3532805.shtml.

58. Романовский, В. И. Дискретные цепи Маркова Текст. / В. И. Романовский. СПб. : ГОСТЕХИЗДАТ, 1949. - 437 с.

59. Романюк, С. Г. Оценка надежности программного обеспечения Электронный ресурс. Режим доступа http://www.osp.ru/os/1994/04/178540.

60. Самарский, A.A. Численные методы Текст. : Учеб. пособие для вузов / А. А. Самарский, А. В. Гулин. — М.: Наука, 1989. — 432 с.

61. Свешников, А. А. Прикладные методы теории Марковских процессов Текст. / А. А. Свешников. СПб. : Издательство «Лань», 2007. - 192 с.

62. Соммервилл, И. Инженерия программного обеспечения Текст. / И. Соммервилл, 6-е издание. : пер. с англ. — М. : Издательский дом «Вильяме», 2002. 624 с.

63. Сугак, Е. В. Надежность технических систем Текст. : учеб. пособие для студентов технических специальностей вузов / Е. В: Сугак, Н. В. Василенко, Г. Г. Назаров, А. Б. Панынин, А. П. Каркарин ; под общ. ред.

64. Е. В. Сугака и Н. В. Василенко. Изд. 2-е, доп. и перераб. - Красноярск : НИИ СУВПТ, 2000. - 608 с.

65. Тейер, Т. Надежность программного обеспечения Текст. / Т. Тейер, М. Липов, Э. Нельсон ; пер. с англ. М. : Мир, 1981. - 323 с.

66. Тэллес, М. Наука отладки Текст. / М. Тэллес, Ю. Хсих ; пер: с англ. С. Лунин. М. : КУДИЦ-ОБРАЗ, 2003. - 560 с.

67. Тихоненков, В: А. Конструирование и надежность ИВК летательных аппаратов Текст. : учебное пособие / В. А. Тихоненков, В. А. Мишин. -Ульяновск : УлГТУ, 2002. 298 с.

68. Тихонов, В. И. Марковские процессы Текст. / В. И. Тихонов, М. А. Миронов. М.: «Сов. радио», 1977. - 488 с.

69. Ушаков, И. А. Надежность технических систем Текст. / И. А. Ушаков. — М.: «Сов. радио», 1977. 606 с.

70. Филлипс, Д. Методы анализа сетей Текст. / Д. Филлипс, А. Гарсиф-Диас. М. : Издательство «Мир»., 1984. - 496 с.

71. Феллер, В*. Введение в теорию вероятностей и ее приложения Текст. / В. Феллер. М. : Радио и связь, 1985. — 500 с.

72. Царев, Р. Ю. Комбинированная архитектура отказоустойчивого программного обеспечения Текст. / Р. Ю. Царев, М. Ю. Царев, В. А. Волков // Успехи современного естествознания. 2007. — № 3. — С. 34.

73. Царев, Р. Ю. Среда исполнения мультиверсионного программного обеспечения Электронный ресурс. Режим доступа: http://www.swsys.ru/index.php?page=article&id=3 81

74. Черкесов, Г. Н. Надежность аппаратно-программных комплексов Текст. / Г. Н. Черкесов. СПб. : Питер, 2005. - 479 с.

75. Чернов, В. Ю. Надежность авиационных приборов и измерительно-вычислительных комплексов Текст. / В. Ю. Чернов, В. Г. Никитин, Ю. П. Иванов. СПб. : СПбГУАП, 2004. - 96 с.

76. Шамис, В. A. Borland С++ Builder 6. Для профессионалов Текст. / А. В. Шамис. СПб. : Питер, 2005. - 798 с.

77. Шураков, В. В. Надежность программного обеспечения систем обработки данных Текст. / В. В. Шураков, 2-е изд., перераб. и доп. М. : Финансы и статистика, 1987. - 272 с.

78. Anderson, Т. Software Tolerance: An Evaluation Text. / Т. Anderson, P: A. Barrett, D. N. Hailiwell, M. R. Moulding;// IEEE Trans. Soft. Eng. 1985. -Vol. SE-11 (12).-P. 1502-1510.

79. Andrews, J. D. Fault Tree and Markov Analysis Applied to Various Design Complexities Электронный ресурс. Режим доступа: http://www.fault-tree.net/papers/ericson-fta-vs-markov.pdf

80. Avizienis, A. The N-Version Approach to Fault-Tolerant Software Text. / A. Avizienis // IEEE Trans. Soft. Eng. 1985. - Vol. SE-11 (12). -P. 1511-1517.

81. Avizienis, A. Fundamental Concepts of Dependability Text. / A. Avizienis, J.-C. Laprie and B. Randell // Research Report N01145, LAAS-CNRS, April 2001.

82. Briere, D. AIRBUS A320/A330/A340 electrical flight controls A family of fault-tolerant systems Text. / D. Briere, P. Traverse // The Twenty-Third International Symp. - 1993. - P. 616-623.

83. Dubrova, E. Fault tolerant design: an introduction Text. / E. Dubrova. -London : Kluwer Academic Publishers. 2005. - P. 164.

84. Kanoun, К. Reliability Growth of Fault-Tolerant Software Text. / K. Kanoun, M. Kaaniche, C. Beounes, J.C. Laprie // IEEE Trans, on reliability. 1993. -Vol. 42.-P. 205-219.

85. Kanoun, K. The KAT (Knowledge-Action-Transformation) Approach to the Modeling and Evaluation of Reliability and Availability Growth Text. / K.

86. Kanoun, M. Kaaniche, С. Beounes, J.C. Laprie // IEEE Trans, on software engineering. 1991. - Vol. 17. 4 . - P. 370-382.

87. Laplante, P. A. Real-time systems design and analysis: an engineer's handbook Text. / P. A. Laplante. 3rd ed. - New York : John Wiley & Sonc Ltd. -2004. - 530 P.

88. Lyu, M. Handbook of Software Reliability Engineering Text. / M. Lyu . -New York : McGraw-Hill and IEEE Computer Society Press. 1996. - 851 P.

89. Lyu, M. Software Fault Tolerance Text. / M. Lyu. New York : John Wiley & Sonc Ltd. - 1995. - 340 P.

90. Misra, P. N. Software reliability analysis Text. / P. N. Misra // IBM System Journal. 1983. - Vol. 22. NO 3. - P. 262-270.

91. Pham, H. Handbook of reliability engineering Text. / H. Pham. London : Springer. - 2003. - 696 P.

92. Randell, B. System Structure for Software Fault-Tolerance Text. / B. Randell // IEEE Trans. Soft. Eng. 1975. - Vol. SE-1. - P. 220-232.

93. Randell, B. The Evolution of the Recovery Block Concept Text. / B. Randell, J. Xu : John Wiley & Sonc Ltd. 1995. - P. 1-21.

94. Shooman, M. L. Reliability of Computer and Networks: Fault Tolerance, Analysis, and Design Text. / M. L. Shooman New York : John Wiley & Sonc Ltd. - 2002. - 546 P.

95. A. Vouk, D. F. McAllister, D. E. Eckhardt, К. Kim // Journal of Computer Software Engineering, 1(4). 1993. pp 364-388.