Оценка и повышение надежности программно-информационных технологий
Покупка
Основная коллекция
Тематика:
Прикладная информатика
Издательство:
Сибирский федеральный университет
Год издания: 2015
Кол-во страниц: 176
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-7638-3387-4
Артикул: 684946.01.99
Рассмотрены актуальные вопросы оценки и повышения надежности программно-информационных технологий. Приведены различные подходы к анализу программных средств как традиционной, так и распределенной архитектуры,
а также мультиверсионного программного обеспечения. Рассмотрены основы мультиверсионного проектирования, показан объектно-ориентированный подход к повышению надежности программного обеспечения с введением программной
избыточности. Особое внимание уделено проблеме надежности программно-
информационных технологий корпоративных структур.
Предназначено для студентов, обучающихся по направлениям 09.03.03
«Прикладная информатика», 09.03.04 «Программная инженерия», 38.03.02 «Менеджмент», 38.03.05 «Бизнес-информатика», всех форм обучения.
Тематика:
ББК:
УДК:
ОКСО:
- 09.00.00: ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Оглавление 1 Министерство образования и науки Российской Федерации Сибирский федеральный университет Р. Ю. Царёв, А. В. Прокопенко, А. Н. Князьков ОЦЕНКА И ПОВЫШЕНИЕ НАДЕЖНОСТИ ПРОГРАММНО-ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ Рекомендовано УМО РАЕ по классическому университетскому и техническому образованию в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлениям подготовки: 09.03.03 «Прикладная информатика», 09.03.04 «Программная инженерия», 38.03.02 «Менеджмент», 38.03.05 «Бизнес-информатика» (рег. № 528 от 10.08.2015 г.) Красноярск СФУ 2015
Оценка и повышение надежности программно-информационных технологий 2 УДК 004.42-027.45(07) ББК 32.971-021я73 Ц181 Р е ц е н з е н т ы: А. Н. Антамошкин, доктор технических наук, профессор Красноярского государственного аграрного университета; А. А. Ступина, доктор технических наук, профессор Красноярского государственного аграрного университета Царёв, Р. Ю. Ц181 Оценка и повышение надежности программно-информационных технологий : учеб. пособие / Р. Ю. Царёв, А. В. Прокопенко, А. Н. Князьков. – Красноярск : Сиб. федер. ун-т, 2015. – 176 с. ISBN 978-5-7638-3387-4 Рассмотрены актуальные вопросы оценки и повышения надежности программно-информационных технологий. Приведены различные подходы к анализу программных средств как традиционной, так и распределенной архитектуры, а также мультиверсионного программного обеспечения. Рассмотрены основы мультиверсионного проектирования, показан объектно-ориентированный подход к повышению надежности программного обеспечения с введением программной избыточности. Особое внимание уделено проблеме надежности программноинформационных технологий корпоративных структур. Предназначено для студентов, обучающихся по направлениям 09.03.03 «Прикладная информатика», 09.03.04 «Программная инженерия», 38.03.02 «Менеджмент», 38.03.05 «Бизнес-информатика», всех форм обучения. Электронный вариант издания см.: http://catalog.sfu-kras.ru УДК 004.42-027.45(07) ББК 32.971-021я73 ISBN 978-5-7638-3387-4 © Сибирский федеральный университет, 2015
Оглавление 3 ОГЛАВЛЕНИЕ ВВЕДЕНИЕ .......................................................................................................... 7 1. АНАЛИЗ МЕТОДОВ ОЦЕНКИ НАДЕЖНОСТИ ПРОГРАММНЫХ СРЕДСТВ НА ВСЕХ ЭТАПАХ ЖИЗНЕННОГО ЦИКЛА ............................................................................... 8 1.1. Программное обеспечение и надежность .............................................. 8 1.2. Проблемы в области исследования надежности программного обеспечения ..................................................................... 9 1.2.1. Проблемы терминологии ............................................................ 10 1.2.2. Проблемы выбора параметров ................................................... 11 1.3. Классификация моделей оценки надежности ПО .............................. 12 1.4. Методы и средства обеспечения надежности программного обеспечения ................................................................... 14 1.5. Фазы разработки программного обеспечения ..................................... 15 1.6. Фаза дизайна архитектуры программного обеспечения .................... 16 1.6.1. Зависимость надежности от архитектуры программного обеспечения ........................................................ 17 1.6.2. Компоненты архитектуры........................................................... 18 1.6.3. Свойства компонентов архитектуры ......................................... 20 1.6.4. Надежность архитектуры программного обеспечения ............ 20 1.7. Фаза кодирования ................................................................................... 24 1.8. Фаза тестирования .................................................................................. 25 1.8.1. Методология тестирования программного обеспечения ........ 25 1.8.2. Моделирование роста надежности программного обеспечения ........................................................ 27 1.8.3. Операционные профили тестирования ..................................... 29 1.9. Целеориентированный подход к жизненному циклу программных средств ............................................................................ 31 2. МУЛЬТИВЕРСИОННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ............. 36 2.1. Базовые элементы мультиверсионного программного обеспечения ................................................................... 36 2.2. Жизненный цикл мультиверсионного программного обеспечения ................................................................... 39 2.3. Восстановление сбойных компонент при мультиверсионном объектно-ориентированном программировании ................................ 42
Оценка и повышение надежности программно-информационных технологий 4 2.4. Формализация задачи мультиверсионного формирования программно-информационных технологий с гарантированной доступностью ресурсов ....................................... 47 2.5. Модель использования ресурсов при формировании программно-информационных технологий ........................................ 51 2.5.1. Формирование вектора временной развертки с учетом ресурсных и временных ограничений ...................... 55 2.5.2. Формирование оптимального вектора конфигурации при стоимостных ограничениях ................................................ 59 2.6. Алгоритмические процедуры мультиверсионного формирования программно-информационных технологий ............. 60 2.6.1. Общий алгоритм решения задачи ............................................. 61 2.6.2. Алгоритм проверки вектора конфигурации на ресурсные и временные ограничения ................................... 62 2.7. Применение мультиверсий для обеспечения отказоустойчивости программно-информационных технологий ........................................ 68 2.7.1. Блоки восстановления ................................................................ 69 2.7.2. Мультиверсионное программирование .................................... 70 2.7.3. Мультиверсионное программирование с самоконтролем ...... 71 2.7.4. Блоки восстановления с согласованием ................................... 73 2.7.5. Проблемы мультиверсионного программного обеспечения .. 74 3. МОДЕЛИ И АЛГОРИТМЫ АНАЛИЗА НАДЕЖНОСТИ ПРОГРАММНО-ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ .................... 80 3.1. Модель анализа на этапе дизайна архитектуры программного обеспечения .................................................................. 80 3.2. Анализ надежности программного обеспечения на фазе кодирования .............................................................................. 83 3.3. Анализ надежности программного обеспечения на фазе тестирования системы ............................................................. 84 3.4. Операционные профили тестирования компонент ............................ 85 3.4.1. Ведение таблиц параметров профилей ..................................... 86 3.4.2. Пример применения операционных профилей ........................ 87 3.5. Модели надежности объектно-ориентированного программного обеспечения .................................................................. 89 3.5.1. Формирование архитектуры объектно-ориентированного программного обеспечения ........................................................ 89 3.5.2. Кодирование и тестирование объектно-ориентированного программного обеспечения ........................................................ 92 3.5.3. Модель оценки транзакционной надежности объектно-ориентированного программного обеспечения ..... 92 3.5.4. Пример расчета транзакционной надежности ......................... 95
Оглавление 5 4. СИСТЕМА МОДЕЛЬНО-АЛГОРИТМИЧЕСКОЙ ПОДДЕРЖКИ МНОГОЭТАПНОГО АНАЛИЗА НАДЕЖНОСТИ ПРОГРАММНЫХ СРЕДСТВ ..................................................................... 97 4.1. Среда разработки ................................................................................... 97 4.2. Описание системы модельно-алгоритмической поддержки многоэтапного анализа надежности программных средств ............. 97 4.3. Концептуальная архитектура системы модельно-алгоритмической поддержки многоэтапного анализа надежности программных средств ............. 98 4.4. Концептуальная архитектура реализации мультиверсионной среды.................................................................... 100 4.5. Описание функционирования системы ............................................. 102 4.6. Примеры решения задач и анализ результатов ................................ 104 5. ПРОБЛЕМА ПОВЫШЕНИЯ НАДЕЖНОСТИ ПРОГРАММНО-ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ ДЛЯ КОРПОРАТИВНЫХ СТРУКТУР .................................................. 111 5.1. Обеспечение отказоустойчивости и доступности ресурсов программно-информационных технологий ...................................... 111 5.1.1. Адекватность программно-информационных технологий условиям и требованиям работоспособности ........................ 112 5.1.2. Обеспечение доступности ресурсов программно-информационных технологий ........................... 115 5.1.3. Анализ реализации корпоративного портала ......................... 119 5.2. Обеспечение гарантированной готовности программно-информационных технологий ...................................... 122 5.2.1. Аппаратно-программная избыточность серверов ................. 122 5.2.2. Платформа сервера гарантированной готовности ................. 124 5.2.3. Программно-информационная технология АТМ обеспечения гарантированной готовности ................... 128 5.3. Задачи управления корпоративными программно-информационными технологиями ............................... 130 5.3.1. Модель централизованного управления ................................. 131 5.3.2. Интеграция сетевого и системного администрирования в корпоративных структурах ................................................... 132 5.3.3. Программно-информационные технологии сетевого администрирования ................................................... 134 5.3.4. Программно-информационные технологии системного администрирования .............................................. 137 5.3.5. Возможности современных ПИТ для управления ИТ-услугами в корпорации .......................... 141
Оценка и повышение надежности программно-информационных технологий 6 5.3.6. Анализ проблем управления корпоративными программно-информационными технологиями .................... 143 6. ФОРМИРОВАНИЕ ПРОГРАММНО-ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ ДЛЯ КОРПОРАТИВНЫХ СТРУКТУР .................................................. 146 6.1. Процедуры формирования ПИТ ........................................................ 146 6.1.1. Обеспечение функциональности ............................................ 147 6.1.2. Обеспечение надежности и масштабируемости ................... 147 6.1.3. Формирование ресурсных требований ................................... 148 6.1.4. Формирование топологии корпоративного кластера ........... 150 6.1.5. Выбор сервером дисковых подсистем и соединений ........... 151 6.1.6. Корпоративная операционная система ................................... 153 6.1.7. RMS – программное обеспечение кластера ............................ 155 6.1.8. Средства централизованного архивирования и резервирования ...................................................................... 158 6.1.9. Принципы корпоративной системы ....................................... 159 6.2. Программная система поддержки мультиверсионного формирования программно-информационных технологий .......... 161 6.2.1. Конструктор структуры мультиверсионных компонент ...... 161 6.2.2. Функциональные возможности системы ............................... 162 6.3. Использование программной системы поддержки для повышения доступности ресурсов корпоративной СУБД ....... 165 6.3.1. Процедуры настройки и оптимизации СУБД ORACLE ....... 165 6.3.2. Оптимизация быстродействия системы управления базами данных ORACLE .......................................................... 167 6.3.3. Программная подсистема оптимизации быстродействия СУБД ORACLE ............................................ 168 ЗАКЛЮЧЕНИЕ ............................................................................................... 170 БИБЛИОГРАФИЧЕСКИЙ СПИСОК ........................................................... 172
Оглавление 7 ВВЕДЕНИЕ Современные исследования надежности систем управления и систем обработки информации показали, что качество их работы напрямую зависит от надежности и безотказности программного обеспечения. За прошедшие десятилетия было создано множество методов и моделей исследования надежности программного обеспечения (ПО), однако единого подхода к решению этой проблемы предложено не было. Причиной этому является уникальность каждой программной системы. Тем не менее при разработке ответственных проектов, их создатели стараются в той или иной степени получить оценку надежности ПО, как правило, на основе результатов конечных испытаний. Современные программные системы используют при работе колоссальный объем данных, проходящих через стандартные модули и функции. Поэтому выявить все связи и пути обработки информации, даже для достаточно несложной программы, практически невозможно. Исходя из этого детализация элементов расчета надежности (условно называемых программными модулями) должна ограничиваться законченными программными образованиями, которые, взаимодействуя между собой, составляют более сложное объединение, надежность которого нас интересует. Основными подходами при создании отказоустойчивых систем управления и обработки информации являются применение алгоритмов и моделей оценки надежности программных средств на каждом шаге жизненного цикла и использование мультиверсионного программного обеспечения. Учебное пособие подробно рассматривает различные вопросы, связанные с оценкой надежности программного обеспечения систем управления и обработки информации, а также программно-информационных технологий корпоративных структур. Приведен комплексный подход оценки надежности программных средств на основных этапах жизненного цикла и обеспечения согласованности разработанных моделей и алгоритмов оценки параметров надежности программного обеспечения на основных фазах жизненного цикла. Методология оценки надежности программных средств, приведенная в учебном пособии, создает теоретическую основу для разработки новых моделей, методов и алгоритмов, направленных на эффективный анализ программных средств на основных фазах жизненного цикла программного обеспечения.
Оценка и повышение надежности программно-информационных технологий 8 1. АНАЛИЗ МЕТОДОВ ОЦЕНКИ НАДЕЖНОСТИ ПРОГРАММНЫХ СРЕДСТВ НА ВСЕХ ЭТАПАХ ЖИЗНЕННОГО ЦИКЛА 1.1. Программное обеспечение и надежность Интерес к оценке надежности программного обеспечения (ПО) возник одновременно с появлением программ. Он был вызван естественным стремлением получить традиционную вероятностную оценку надежности технического устройства (ЭВМ или персонального компьютера), работа которого в основном и предназначалась для функционирования ПО. Последнее было определено как одна из составляющих частей машины, поэтому подход к оцениванию надежности программной части первоначально мало отличался от оценивания надежности техники и заключался в переносе известных статистических методов классической теории надежности на новую почву, образовав ее отдельную ветвь – теорию надежности ПО. В целом этот подход сохранился до сегодняшнего дня. Однако по мере развития вычислительной техники пришло четкое понимание того, что ПО – не просто составная часть вычислительной техники. В современных условиях развития цифровой техники специализированное ПО перестало быть принадлежностью одной вычислительной системы (как это было раньше), а стало использоваться на сотнях и тысячах аналогичных компьютеров (в основном – персональных). Даже если не касаться вопросов информационной безопасности, проблема обеспечения устойчивого функционирования расчетных программ, выявления их ошибок сегодня крайне остро стоит перед разработчиками. За прошедшие десятилетия было создано множество методов, методик и моделей исследования надежности ПО. Однако, к сожалению, единого подхода к решению этой проблемы предложено не было и, по-видимому, в ближайшее время не предвидится. Тем не менее при разработке сложных программных систем их создатели стараются в той или иной степени получить оценку надежности ПО. Более правильный подход заключается в последовательном оценивании надежности программ на каждом этапе разработки. Основная сложность при использовании статистических методов заключается в отсутствии достаточного количества исходных данных.
1. Анализ методов оценки надежности программных средств на всех этапах жизненного цикла 9 Динамика выявления ошибок должна тщательно фиксироваться и обрабатываться. Важной проблемой является степень детализации элемента расчета надежности. Выявить все связи обработки информации (как это порой предлагается), даже для достаточно несложной программы, практически нереально. Исходя из этого детализация элементов расчета надежности (условно называемых программными модулями) должна ограничиваться законченными программными образованиями, которые, взаимодействуя между собой, составляют более сложное объединение (комплекс), надежность которого нас интересует. При этом допускается, что надежность самой вычислительной техники, операционной системы и среды программирования полная, нас интересует лишь надежность функционирования специальных программных средств, решающих основную целевую задачу системы. В данной работе проводится анализ методов, моделей и методологий в области создания надежного, отказоустойчивого ПО. Предпринимается попытка систематизировать и унифицировать существующие методологии. Приводятся новые разработанные авторами модели и алгоритмы для использования на всем жизненном цикле создания гарантоспособного программного обеспечения. 1.2. Проблемы в области исследования надежности программного обеспечения В результате анализа многих работ из области исследования надежности ПО был выявлен широкий ряд проблем, основной причиной которого является отсутствие единого стандарта в области отказоустойчивого ПО. Были изучены труды многих зарубежных исследователей, таких как А. Авиженис, Г. Майерс, Б. Боэм, И. Соммервилл, и труды отечественных авторов: В. В. Липаев, И. А. Ковалев и др. Среди множества различных институтов и организаций (ISREE, IEEE, NASA), независимых исследователей проблем надежности ПО не существует единой терминологии, единых параметров и показателей надежности, методологии разработки отказоустойчивого ПО. Можно выделить три основные группы проблем в данной области: ● отсутствие единой методологии создания отказоустойчивого ПО; ● отсутствие единой методологии тестирования отказоустойчивого ПО; ● отсутствие единого подхода к анализу проблемной области.
Оценка и повышение надежности программно-информационных технологий 10 1.2.1. Проблемы терминологии Ошибка, сбой и дефект в программном обеспечении Программное обеспечение содержит ошибку, если: 1. Поведение ПО не соответствует спецификациям. Недостатки: неявно предполагается, что спецификации корректны. Подготовка спецификаций – один из основных источников ошибок. Если поведение программного продукта не соответствует его спецификациям, ошибка, вероятно, имеется. Однако, если система ведет себя в соответствии со спецификациями, мы не можем утверждать, что она не содержит ошибок. 2. Поведение ПО не соответствует спецификациям при использовании в установленных при разработке пределах. Недостатки: если система случайно используется в непредусмотренной ситуации, ее поведение должно оставаться разумным. Если это не так, она содержит ошибку. 3. Программное обеспечение ведет себя не в соответствии с официальной документацией и поставленными пользователю спецификациями. Недостатки: ошибки могут содержаться и в программе, и в спецификациях, или в руководстве описана только ожидаемая и планируемая работа с системой. 4. Система не способна действовать в соответствии с исходной спецификацией и перечнем требований пользователя. Это утверждение тоже не лишено недостатков, поскольку письменные требования пользователя редко детализированы настолько, чтобы описывать желаемое поведение программного обеспечения при всех мыслимых обстоятельствах. Окончательное определение: в программном обеспечении имеется ошибка, если оно не выполняет того, что пользователю разумно от него ожидать. Отказ программного обеспечения – это проявление ошибки в нем. Термины «ошибка», «сбой» и «дефект» часто используются без разделения по смыслу. В ПО «ошибка» – это действия программиста, которые приводят к дефектам в ПО. «Дефект» в ПО влечет за собой сбои во время исполнения кода. «Сбой» – отклонение выхода системы от желаемого при выполнении кода. Дефект влечет за собой сбой только тогда, когда выполняется код, содержащий ошибку, и распространяется до выхода системы. Уровень тестируемости дефекта определяется как вероятность обнаружения сбоя на случайно выбранном выходе. Уровни сбоя: катастрофичный, высокий, средний, низкий, незначительный. Определения этих уровней меняются от системы к системе.