Мультиверсионное программное обеспечение. Алгоритмы голосования и оценка надёжности
Покупка
Основная коллекция
Тематика:
Программирование и алгоритмизация
Издательство:
Сибирский федеральный университет
Год издания: 2013
Кол-во страниц: 120
Дополнительно
Вид издания:
Монография
Уровень образования:
ВО - Магистратура
ISBN: 978-5-7638-2749-1
Артикул: 620785.01.99
В монографии представлены современные алгоритмы голосования, ис- пользуемые в мультиверсионном программном обеспечении при принятии ре- шения о корректности полученных результатов; приведена их классификация. Рассмотрены проблемы применения алгоритмов голосования в мультиверсион- ном программном обеспечении. Показана модель оценки надёжности мульти- версионного программного обеспечения, представлены результаты ее исследо- вания при имитировании поведения реальной мультиверсионной системы с рас- пределенной архитектурой. Результаты исследования служат теоретической базой для разработки вы- соконадёжного и отказоустойчивого программного обеспечения на основе муль- тиверсионной парадигмы. Предназначено специалистам, работающим в области проектирования и разработки программного обеспечения, а также аспирантам и докторантам. Ма- териалы монографии рекомендуются к использованию при проведении лекци- онных и практических занятий у магистрантов, обучающихся по программе под- готовки магистров 230100.68 «Информатика и вычислительная техника».
Тематика:
ББК:
УДК:
ОКСО:
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Р. Ю. Царев А. В. Штарик Е. Н. Штарик Монография Институт космических и информационных технологий мультиВЕРсиоННоЕ пРогРАммНоЕ обЕспЕчЕНиЕ. АлгоРитмы голосоВАНия и оЦЕНкА НАдёжНости В монографии представлены современные алгоритмы голосования, используемые в мультиверсионном программном обеспечении при принятии решения о корректности полученных результатов; приведена их классификация. Рассмотрены проблемы применения алгоритмов голосования в мультиверсионном программном обеспечении. показана модель оценки надёжности мультиверсионного программного обеспечения, представлены результаты ее исследования при имитировании поведения реальной мультиверсионной системы с распределенной архитектурой. Результаты исследования служат теоретической базой для разработки высоконадёжного и отказоустойчивого программного обеспечения на основе мультиверсионной парадигмы. 9 785763 827491 ISBN 978-5-7638-2749-1
Министерство образования и науки Российской Федерации Сибирский федеральный университет Р. Ю. Царев, А. В. Штарик, Е. Н. Штарик МУЛЬТИВЕРСИОННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. АЛГОРИТМЫ ГОЛОСОВАНИЯ И ОЦЕНКА НАДЁЖНОСТИ Монография Красноярск СФУ 2013
УДК 004.451.46 ББК 32.973.233-018 Ц181 Рецензенты: А. Н. Антамошкин, доктор технических наук, профессор, зав. кафедрой математического моделирования и информатики КрасГАУ; А. В. Медведев, доктор технических наук, профессор кафедры системного анализа и исследования операций СибГАУ им. М. Ф. Решетнёва Царев, Р. Ю. Ц181 Мультиверсионное программное обеспечение. Алгоритмы голосования и оценка надёжности : монография / Р. Ю. Царев, А. В. Штарик, Е. Н. Штарик. – Красноярск : Сиб. федер. ун-т, 2013. – 120 c. ISBN 978-5-7638-2749-1 В монографии представлены современные алгоритмы голосования, используемые в мультиверсионном программном обеспечении при принятии решения о корректности полученных результатов; приведена их классификация. Рассмотрены проблемы применения алгоритмов голосования в мультиверсионном программном обеспечении. Показана модель оценки надёжности мультиверсионного программного обеспечения, представлены результаты ее исследования при имитировании поведения реальной мультиверсионной системы с распределенной архитектурой. Результаты исследования служат теоретической базой для разработки высоконадёжного и отказоустойчивого программного обеспечения на основе мультиверсионной парадигмы. Предназначено специалистам, работающим в области проектирования и разработки программного обеспечения, а также аспирантам и докторантам. Материалы монографии рекомендуются к использованию при проведении лекционных и практических занятий у магистрантов, обучающихся по программе подготовки магистров 230100.68 «Информатика и вычислительная техника». УДК 004.451.46 ББК 32.973.233-018 ISBN 978-5-7638-2749-1 © Сибирский федеральный университет, 2013
ОГЛАВЛЕНИЕ ВВЕДЕНИЕ……………………………………………………………… 5 1. МУЛЬТИВЕРСИОННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ КАК СПОСОБ ПОВЫШЕНИЯ НАДЁЖНОСТИ ИНФОРМАЦИОННО-УПРАВЛЯЮЩИХ СИСТЕМ…………….. 7 1.1. Программный компонент систем управления и обработки информации……………………………………….. 7 1.2. Надёжность функционирования программного обеспечения 9 1.2.1. Надёжностная характеристика программного модуля 9 1.2.2. Обеспечение надёжности программ с помощью введения избыточности……………………... 14 1.3. Мультиверсионное программирование как методология проектирования отказоустойчивого программного обеспечения систем управления и обработки информации 17 2. АЛГОРИТМЫ ГОЛОСОВАНИЯ В МУЛЬТИВЕРСИОННОМ ПРОГРАММНОМ ОБЕСПЕЧЕНИИ……………………………….. 22 2.1. Алгоритмы голосования, основанные на сравнении выходных данных………………..……………… 23 2.1.1. Неформализованные алгоритмы голосования………….. 24 2.1.2. Формализованные алгоритмы голосования…………….. 34 2.2. Алгоритмы с принятием решения вне зависимости от схожести выходных данных………………………………… 35 2.2.1. «Максимально вероятное» голосование (MLV)………… 36 2.2.2. Усреднённое голосование………………………………… 38 3. СПЕЦИФИКА ПРИМЕНЕНИЯ АЛГОРИТМОВ ГОЛОСОВАНИЯ В МУЛЬТИВЕРСИОННОМ ПРОГРАММНОМ ОБЕСПЕЧЕНИИ ИНФОРМАЦИОННО-УПРАВЛЯЮЩИХ СИСТЕМ…………….. 39 3.1. Неоднозначность принятия решения в алгоритмах голосования согласованным большинством…… 39 3.2. «Склеивание» подмножеств выходных данных……………….. 49 3.3. Оценка результатов голосования……………………………….. 55 3.4. Несовместность разбиений в алгоритмах с минимизацией…… 58 3.5. Выбор значения -сечения в нечётких алгоритмах……………. 59 3.6. Комплексное применение алгоритмов голосования в мультиверсионном программном обеспечении……………… 62 4. ПРАКТИЧЕСКОЕ ПРИМЕНЕНИЕ АЛГОРИТМОВ ГОЛОСОВАНИЯ В МУЛЬТИВЕРСИОННОМ ПРОГРАММНОМ ОБЕСПЕЧЕНИИ………………………………. 70 4.1. Программа NVX…………………………………………………. 70 4.1.1. Особенности программы…………………………………. 70
4.1.2. Взаимодействие с исполняемыми версиями……………. 71 4.1.3. Общая схема работы программы………………………… 72 4.1.4. Обобщенная схема работы версий………………………. 74 4.1.5. Требования к разработке версий…………………………. 75 4.2. Программа NVX-m………………………………………………. 75 5. МОДЕЛИ И МЕТОДЫ ОЦЕНКИ НАДЁЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ……………………………… 78 5.1. Модель анализа на этапе дизайна архитектуры программного обеспечения……………………………………… 79 5.2. Анализ надёжности программного обеспечения на фазе кодирования……………………………………………... 81 5.3. Анализ надёжности программного обеспечения на фазе тестирования системы………………………………….. 82 5.4. Модель оценки транзакционной надёжности объектно-ориентированного программного обеспечения…….. 83 5.5. Универсальная модель оценки надёжности объектно-ориентированного мультиверсионного программного обеспечения с распределенной архитектурой 84 6. ПРАКТИЧЕСКОЕ ПРИМЕНЕНИЕ МОДЕЛЕЙ И МЕТОДОВ ОЦЕНКИ НАДЁЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 86 6.1. Система SMR……………………………………………………. 86 6.1.1. Назначение и общие сведения о системе поддержки принятия решений SMR…………. 87 6.1.2. Структура информационной системы…………………… 88 6.1.3. Описание основных подсистем…………………………... 89 6.2. Результаты применения системы SMR………………….……… 90 ЗАКЛЮЧЕНИЕ…………………………………………………………. 98 БИБЛИОГРАФИЧЕСКИЙ СПИСОК…………………………………. 100 Приложение 1. Применение алгоритма выбора значения λ-сечения CVS………………………………………… 109 Приложение 2. Условия успешного применения алгоритмов голосования……………………………… 116
ВВЕДЕНИЕ Информационно-управляющие системы (ИУС) характеризуются сложной структурой и большим числом взаимосвязей между подсистемами. Объекты управления и сама система управления распределены в пространстве, обладают избыточностью основных элементов и подсистем, процесс управления включает в себя сложные расчеты и обработку большого объема информации. Повышение уровня сложности ИУС требует учета целого набора параметров или атрибутов, на основе которых формируется состав систем управления и обработки информации. Отказ подсистем ИУС при выполнении функций по управлению и обработке информации может привести к утрате информации и значительным финансовым потерям. Это определяет повышенные требования по надёжности к системам данного класса. Реализация процессов управления и обработки информации в ИУС в большой степени зависит от программного обеспечения (ПО) системы. Таким образом, надёжность ПО во многом определяет надёжность всей АСУ спутниковой системой связи в целом. Информационно-управляющие системы, применяемые в критичных областях (контроль полётов, атомная промышленность и др.) должны быть максимально надежными. Решающую роль в обеспечении надёжности информационно-управляющих систем играет программный компонент. На сегодняшний день существует ряд методов повышения надёжности программного обеспечения информационно-управляющих систем. Достаточно эффективным методом обеспечения надёжности ПО, положительно зарекомендовавшим себя на практике, является концепция мультиверсий [1; 5; 1319; 25; 2940; 47; 5052; 5768; 70; 7275; 7778; 80; 8292; 9699; 101102; 105108; 110113; 115; 119]. Применяя методологию мультиверсионного формирования программных средств, можно не только обеспечить заданный уровень надёжности, но и гарантировать отказоустойчивость систем управления и обработки информации. Данная методология основывается на программной избыточности, введение которой позволяет существенно повысить уровень надёжности программной составляющей ИУС. Большое количество модулей программного обеспечения, их дополнительные избыточные версии, а также ограничения такие, например, как стоимость, объем оперативной и дисковой памяти, требуемое время исполнения ставят перед проектировщиком задачу принятия решений по выбору состава мультиверсионного программного обеспечения с учетом, как правило, ряда атрибутов.
Методы многоатрибутивного принятия решений, ориентированные на класс задач, где множество альтернатив дискретно и, конечно, позволяют произвести эффективный выбор лучшего варианта формирования мультиверсионного программного обеспечения ИУС. Формирование мультиверсионного программного обеспечения согласно спецификации позволяет привлекать к разработке мультиверсионных компонент специалистов по управлению. Однако зачастую произвести выбор лучшего варианта лицу, принимающему решение (ЛПР), сложно ввиду большого количества рассматриваемых альтернатив. В связи с этим возникает техническая проблема – создание средств автоматизации принятия решений, а именно системы поддержки принятия решений, которая позволила бы выбрать состав мультиверсионного программного обеспечения ИУС. Поддержка принятия решения предполагает многовариантность решений. Таким образом, лицу, принимающему решение, для оценки и выбора должны предлагаться несколько лучших вариантов формирования мультиверсионного программного обеспечения ИУС. Разработка моделей и методов, предназначенных для решения данной проблемы, и их реализация в составе системы поддержки принятия решений, является актуальной научной проблемой. Мультиверсионный подход предполагает независимую генерацию и параллельное исполнение нескольких версий одного и того же программного модуля. При этом версии разрабатываются на основе идентичных исходных спецификаций. Концепция мультиверсий даёт ряд преимуществ, в частности, отказ одной версии не приведёт к отказу всей системы. Однако при использовании мультиверсионного подхода существует вероятность, что версии выдадут различные результаты. Таким образом, возникает необходимость определить, какие результаты являются корректными, а какие ошибочными. Задача может быть решена либо путём использования алгоритмов голосования, либо применением приёмочных тестов. Алгоритмы голосования в мультиверсионном ПО зарекомендовали себя как достоверный способ выбора корректных ответов из всего множества результатов работы версий. В настоящее время предложено множество алгоритмов голосования, которые различаются схемами работы и требованиями к исходным данным. Подчеркнём, что результат работы алгоритма голосования определяет итог работы всей мультиверсионной системы. Поэтому ошибка в процессе голосования может привести к отказу всей системы, и, соответственно, к значительным потерям.
1. МУЛЬТИВЕРСИОННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ КАК СПОСОБ ПОВЫШЕНИЯ НАДЁЖНОСТИ ИНФОРМАЦИОННО-УПРАВЛЯЮЩИХ СИСТЕМ 1.1. Программный компонент систем управления и обработки информации Современные системы управления и обработки информации строятся на базе универсальных или специализированных ЭВМ, при этом сложность процесса обработки данных и объекта управления определяет сложность программных средств автоматизированной системы. В связи с этим можно выделить следующие особенности программных средств как сложных систем [40; 48]. Наиболее существенными чертами сложных систем принято считать: ● наличие общей задачи и единой цели функционирования для всей системы; ● большое количество взаимодействующих частей или элементов, составляющих систему; ● возможность расчленения на группы наиболее тесно взаимодействующих элементов – подсистемы, имеющие свое специальное назначение и цель функционирования; ● иерархическую структуру связей подсистем и иерархию критериев качества функционирования всей системы; ● сложность поведения системы, связанную со случайным характером внешних воздействий и большим количеством обратных связей внутри системы; ● устойчивость по отношению к внешним и внутренним помехам и наличие самоорганизации и адаптации к различным возмущениям; ● высокую надёжность системы в целом, построенной из неабсолютно надежных компонент. Программные системы (ПС) исполняются на различных типах ЭВМ, характеристики которых определяются назначением и сложностью. В системах управления в качестве реализующих ЭВМ могут применяться универсальные большие и мини-ЭВМ, а также персональные ЭВМ. Общие принципы технологии проектирования программного обеспечения для систем управления и обработки информации достаточно универсальны, и основные особенности проектирования связаны с назначением ПС, с доступными ресурсами применяемых ЭВМ, с соответствием их назначению и сложности решаемых программами задач. Эти факторы влияют на
рациональный уровень автоматизации проектирования, на размер и сложность взаимодействия в коллективе разработчиков, на трудоёмкость и длительность создания программного обеспечения и т. д. Однако принципы и методы проектирования ПС при этом меняются относительно мало. Программные средства, использующиеся в системах управления и обработки данных, обладают всеми свойствами сложных систем. Они содержат большое количество компонентов – модулей, тесно взаимодействующих в процессе решения общей целевой задачи. Программное обеспечение систем управления и обработки данных имеет единую цель функционирования – обработку информации и принятие решений для управления объектами, вплоть до формирования соответствующих управляющих воздействий. Для обеспечения взаимодействия компонентов в едином комплексе широко используются иерархические структуры с несколькими уровнями группирования и подчиненности модулей. Каждый модуль имеет свою целевую задачу и специфический частный критерий качества, как правило, не совпадающий с критерием эффективности всего комплекса программ. Однако частные критерии качества модулей и групп программ играют подчиненную роль относительно критериев качества всего программного обеспечения информационно-управляющих систем и должны способствовать получению их допустимых или экстремальных значений. Иерархическая структура широко используется при анализе критериев качества всей программной системы и ее модулей. В сложных информационно-управляющих системах программное обеспечение обладает разнообразием функций, связано это с управлением несколькими разнотипными объектами и различным назначением обрабатываемой информации. Кроме того, сама программная система может является объектом управления для других систем более высокого ранга. В то же время управляющие программы сравнительно мало изменяются в течение длительного периода эксплуатации. Изменение характеристик или состава управляемых объектов, как правило, не вызывает фундаментальной переработки программ, так как возможность таких изменений обычно учитывается в процессе разработки. Управляющие ЭВМ, ориентированные на решение определенного класса задач, проектируются или выбираются с минимальными запасами вычислительных ресурсов. Значительная определенность задач, решаемых программными системами, позволяет весьма полно использовать аппаратуру и определять оптимальное соотношение между отдельными параметрами реализующих ЭВМ применительно к конкретным задачам. Кроме того, особенность работы управляющих программных систем заключается в том, что за ограниченное время решается большое количество различных функциональных задач и одновременно осуществляется обмен информацией с многочисленными внешними абонентами. Вследствие асинхронности работы большинства объектов системы управления
данные от них могут поступать в случайные моменты времени, последовательность которых заранее не известна. Поэтому во многих программных системах строгая последовательность решения задач принципиально не может быть заранее определена или задана, так как она существенным образом зависит от поступающих сообщений и длительности решения тех или иных задач. Для решения этой проблемы во время процесса обмена и обработки информации используются буферные накопители сообщений при приеме и выдаче данных. Создание сложных систем с заданными характеристиками при ограниченных ресурсах требует проведения определенного комплекса мероприятий для достижения поставленной цели, который получил название проект. Целенаправленное управление проектом предназначено для пропорционального распределения ресурсов между работами по созданию системы на протяжении всего цикла проектирования вплоть до внедрения системы в серийное производство [4; 8]. Более подробно критерии проектирования программного обеспечения будут рассмотрены в следующей главе, а пока остановимся на надёжность программных систем. Надёжность функционирования программных систем при искажениях информации, сбоях и частичных отказах аппаратуры, которые могут возникать в процессе работы информационно-управляющей системы – один из наиболее значимых критериев разработки программных средств. Требования по обеспечению высокой надёжности объясняются высокой степенью автоматизации процессов управления в ряде систем и особой важностью выполняемых функций. Работа в системе управления реальными объектами в большинстве случаев требует от программного обеспечения надёжного функционирования и обработки данных при длительном (иногда круглосуточном и многомесячном) непрерывном решении заданного набора задач. Так как сложность современных информационно-управляющих систем возрастает значительно быстрее, чем надёжность используемой в них аппаратуры, то все более острой становится проблема обеспечения высокого качества выдаваемых результатов и сохранения работоспособности системы в условиях выхода из строя отдельных компонент аппаратуры или программных модулей. 1.2. Надёжность функционирования программного обеспечения 1.2.1. Надёжностная характеристика программного модуля Надёжность технических систем определяется в основном двумя факторами [26]: надёжностью компонентов и ошибками в конструкции, допущенными при проектировании или изготовлении. Относительно не