Доставка любой диссертации в формате PDF и WORD за 499 руб. на e-mail - 20 мин. 800 000 наименований диссертаций и авторефератов. Все авторефераты диссертаций - БЕСПЛАТНО
Ханджян, Аркадий Олегович
05.11.16
Кандидатская
2006
Москва
183 с.
Стоимость:
499 руб.
1. АНАЛИЗ СОВРЕМЕННЫХ МЕТОДОВ ПОВЫШЕНИЯ НАДЕЖНОСТИ ПО
1.1. Процесс разработки ПО
1.1.1. Классическая (водопадная или каскадная) модель
1.1.2. Итерационная или эволюционная модель
1.1.3. Экстремальное программирование
1.1.4. Характеристики разработки ПО
1.2. Качество ПО
1.3. Надежность ПО
1.3.1. Надежность ПО и аппаратуры
1.3.2. Частоты появления ошибок
1.4. Программный контроль для повышения надежности вычислительной техники. Оперативный контроль и диагностика
1.5. Поиск ошибок в тексте программы и тестирование
1.6. Модели надежности ПО
1.6.1. Обзор моделей
1.6.2. Сравнение моделей
1.7. Выводы
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. Выводы
2.3. Уточнение модели для описания работы п однотипных программ
2.3.1. Постановка задачи и выводы основных формул
2.3.2. Примеры использования и п-канальная интерпретация
2.3.3. Определение рентабельности сопровождения
2.3.4. Выводы
2.4. Уточнение модели надежности ПО как СМО с отказами, недостоверным обслуживанием, ожиданием и взаимопомощью
2.4.1. Учет в модели надежности отказов в обслуживании и недостоверности обслуживания
2.4.2. Учет в модели времени ожидания заявкой выполнения
2.4.3. Учет в модели взаимопомощи между программистами при устранении ошибок
2.4.4. Об учете в модели ограничения на время пребывания заявки в очереди
2.4.5. Выводы
2.5. Разработка модели надежности ПО как замкнутой СМО - учет работы программистов
2.5.1. Постановка задачи и вывод основных уравнений
2.5.2. Постановка и решение задачи линейного программирования
2.5.3. Случай с одним программистом
2.5.4. Примеры использования модели
2.5.5. Выводы
2.6. Разработка модели надежности клиентских программ в ПО типа клиент-сервер
2.6.1. Постановка задачи и вывод основных формул
2.6.2. Пример работы модели с заменой вероятностей состояний на средние численности состояний
2.6.3. Применение модели для случая N модулей-клиентов, каждый из которых может находится либо в рабочем либо в нерабочем состоянии
2.6.4. Уточнение модели для случая X ? const
2.6.5. Учет фактора внесения новых ошибок
2.6.6. Выводы
2.7. Разработка общей модели надежности ПО типа клиент-сервер как марковской модели смешанного типа
2.7.1. Постановка задачи и выводы основных формул
2.7.2. Пример использования модели
2.7.3. Выводы
2.8. Выводы
3. ИССЛЕДОВАНИЕ ПУТЕЙ ПОВЫШЕНИЯ НАДЕЖНОСТИ ПО НА ОСНОВЕ ПРЕДЛОЖЕННОЙ МОДЕЛИ П0136
3.1. Постановка задачи
3.2. Описание функционирования программы моделирования
3.3. Алгоритм одного розыгрыша
3.4. Практические результаты моделирования
3.4.1. Влияние количества клиентов на надежность ПО
3.4.2. Влияние количества программистов на надежность ПО
3.4.3. Влияние интенсивности обращений клиентов к серверу
3.4.4. Определение начального количества ошибок в ПО
3.4.5. Поиск начального количества ошибок в программе по начальной и конечной интенсивностям отказов
3.5. Выводы
4. ЗАКЛЮЧЕНИЕ
СОКРАЩЕНИЯ
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
ПРИЛОЖЕНИЯ
Приложение 1. Тексты программ моделирования надежности ПО методом Монте-Карло
Приложение 2. Тексты программ расчета модели надежности ПО на MatLab
1. К п. 2.4.2 «Учет в модели времени ожидания»
2. К п. 2.5 «Разработка модели надежности ПО как замкнутой СМО»
3. К п. 2.6 «Разработка модели надежности клиентских программ в ПО типа клиент-сервер»
4. К п. 2.7 «Разработка общей модели надежности ПО типа клиент-сервер как марковской модели смешанного типа»
Приложение 3. Примеры моделей надежности ПО
Экспоненциальная модель роста надежности Джелински, Моранда, Шумана
Статистическая модель Миллса
Модель Бейзина
Простая экспоненциальная модель
Дискретная модель Шика-Уолвертона
Модель Вейбулла
Определение надежности по результатам тестирования
Модель по работе Куракина
Модель Дюэна
Метод Холстеда оценки числа оставшихся в ПО ошибок
Модель IBM
Модель Шумана
Простая эвристическая модель двух независимых групп тестирования Руднера
Линейная модель
Актуальность исследования.
Применение программного обеспечения (ПО) на радиационно-опасных объектах и прежде всего на АЭС требует изучения вопроса повышения надежности такого ПО. Каждая ошибка в ПО, применяемом в системах важных для безопасности АЭС (таких как система внутриреакторного контроля, система контроля и управления, автоматизированная система контроля радиационной обстановки), может привести к серьезным последствиям и даже аварийным ситуациям. При этом сжатость сроков разработки, ограниченность в людских и финансовых ресурсах часто не позволяет достичь требуемых показателей надежности ПО. Поэтому необходимо выработать рекомендации по созданию надежного ПО, прогнозированию характеристик ПО в условиях ограниченных ресурсов и достижению требуемых показателей надежности ПО.
В работе [32] в статье «Вклад фон Неймана в теорию автоматов» есть замечательный параграф: "Мозг человека и животных дает нам пример очень большой и относительно надежной системы, построенной из индивидуальных компонент, нейронов, которые ненадежны не только в выполнении операций, но и в тонких деталях взаимосвязи. Более того, хорошо известно, что при повреждении, несчастном случае, болезни и так далее мозг продолжает функционировать удивительно правильно, даже если поражены его большие области.
Эти факты представляют сильный контраст по сравнению с поведением и организацией современных вычислительных машин. Индивидуальные элементы этих машин должны быть выполнены с чрезвычайной надежностью, каждый провод должен быть соединен нужным образом и каждая команда в программе должна быть правильной. Любая ошибка в элементе, в соединении элементов или в программе обычно приводит к полному искажению результатов. Если рассматривать мозг как машину, то очевидно, что предохранение от ошибок организованно в нем совершенно иначе, чем в вычислительных машинах."
На сегодняшний день [17] программное обеспечение (ПО) является неотъемлемой частью современного мира. ПО - эта та движущая сила, которая в современном мире обеспечивает функционирование торговли, промышленности, обороны и связывает воедино страны и людей. ПО помогает создавать и обмениваться информацией, визуализировать ее. Развитие мировой экономики напрямую связано с процессом развития в области ПО и вычислительных
модели были проверены при тестировании реальных программ и хорошо соответствуют действительности [34].
В заключение в [27] делается вывод, что на сегодняшний день невозможно выбрать наилучшую модель среди десятка предложенных.
Большинство вышеприведенных моделей сложны в применении, так как требуют знаний таких характеристик ПО, которые можно вычислить только после длительной его эксплуатации, но в этом случае характеристики надежности ПО уже известны и так!
Из-за значительных неопределенностей во всех вышеописанных моделях в [22] рекомендуется использовать несколько моделей одновременно и объединить их результаты.
В данной работе не рассматриваются модели, основанные на сложности исходных текстов программ. Я считаю эти модели не оправданными. На мой взгляд, нет прямой связи между количеством операторов, количеством циклов, ветвлений, переходов и количеством ошибок в программе, потому что основные ошибки закладываются на этапе определения требований к системе и проектировании, где еще эти понятия не определены. Это особенно ясно в последнее время, когда почти все среды разработки приближаются к языкам 4 поколения и автоматически генерируют исходный текст и делают это, конечно, без ошибок. При этом современные компиляторы четко отслеживают все ошибки программиста (такого рода как неинициализированная переменная, недоступный код и т.п.). А также весьма трудоемко считать количество входов и ветвей в программе. Бесполезно это и для тестирования программ, так как показано, что протестировать все ветви практически не возможно.
В [20] говорится, что модели дают удовлетворительный результат при относительно высоких уровнях интенсивности проявления ошибок, то есть при невысокой надежности ПО. В этих условиях математические модели предназначены для приближенной оценки:
- потенциально возможной надежности функционирования программ в процессе испытаний и эксплуатации;
- числа необнаруженных ошибок;
- время тестирования, требуемое для обнаружения следующей ошибки;
Название работы | Автор | Дата защиты |
---|---|---|
Бортовая информационно-измерительная и управляющая система беспилотного автомобиля для циклических тестовых заездов | Нгуен Туан Нгок | 2014 |
Модели и методы поиска данных и документов в информационных системах промышленного предприятия | Шлычков, Евгений Иванович | 2002 |
Информационно-измерительная и управляющая система для проведения испытаний конструктивных элементов электронных средств | Голушко, Дмитрий Александрович | 2015 |