Помощь в написании студенческих работ
Антистрессовый сервис

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

ДиссертацияПомощь в написанииУзнать стоимостьмоей работы

Применение программного обеспечения (ПО) на радиационно-опасных объектах и прежде всего на АЭС требует изучения вопроса повышения надежности такого ПО. Каждая ошибка в ПО, применяемом в системах важных для безопасности АЭС (таких как система внутриреакторного контроля, система контроля и управления, автоматизированная система контроля радиационной обстановки), может привести к серьезным… Читать ещё >

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

Содержание

  • 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. Примеры использования и n-канальная интерпретация
    • 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. ИССЛЕДОВАНИЕ ПУТЕЙ ПОВЫШЕНИЯ НАДЕЖНОСТИ ПО НА ОСНОВЕ ПРЕДЛОЖЕННОЙ МОДЕЛИ П
    • 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. Выводы

Актуальность исследования.

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

В работе [32] в статье «Вклад фон Неймана в теорию автоматов» есть замечательный параграф: «Мозг человека и животных дает нам пример очень большой и относительно надежной системы, построенной из индивидуальных компонент, нейронов, которые ненадежны не только в выполнении операций, но и в тонких деталях взаимосвязи. Более того, хорошо известно, что при повреждении, несчастном случае, болезни и так далее мозг продолжает функционировать удивительно правильно, даже если поражены его большие области.

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

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

Относительная стоимость ПО в настоящее время все растет [27] и в отдельных отраслях намного превышает стоимость аппаратных средств.

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

Интенсивное и масштабное использование [38] вычислительной техники в задачах автоматизации радиационно-опасных объектов (РОО), её корректная работа часто является критичной для надежного обеспечения управления и контроля за работой объектов и обеспечения их безопасности. В этой связи создание надежного ПО и программно-технических средств (ПТС) имеют сегодня первостепенную важность, т. е. надежность ПО является важнейшей характеристикой ПО информационно-измерительных и управляющих систем безопасности ЯУ.

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

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

— неповторимость и уникальность ПО для конкретных РОО;

— нечеткая формализация заказчиком требований к программной автоматизации технологических процессов конкретного РОО;

— неточное понимание разработчиком ПО требований заказчика;

— выявление проектных ошибок на поздних этапах создания объекта и как следствие необходимость корректировки ПО;

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

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

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

Указанные факторы в своей совокупности существенно снижают надежность ПО РОО. Учитывая, что данная характеристика является одной из важнейших при создании информационно-измерительных и управляющих систем безопасности РОО и ЯУ [27], существенное повышение надежности ПО для указанного класса систем представляет собой актуальную проблему. Для создания надежного ПО целесообразно разработать механизм его создания, критерии его оценки и прогнозирования результирующих значений его надежностных характеристик.

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

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

Цели и задачи исследования.

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

— изучены существующие модели надежности ПО и методы разработки надежного ПО;

— построена новая математическая модель надежности ПО, адаптированная для адекватной оценки влияния характеристик ПО на надежность (таких как одна программ, много программ, система типа клиент-сервер);

— разработана методология моделирования поведения надежности ПО во времени;

— разработаны методы и рекомендации для повышения надежности ПО;

— результаты моделирования сравнены с надежностными характеристиками реального ПО при его тестировании и эксплуатации.

Объект исследования. Программное обеспечение систем важных для безопасности РОО и ЯУ.

Предмет исследования. Характеристики надежности программного обеспечения радиационно-опасных объектов.

Методологические и теоретические основы исследования. Метод исследования. Изучение существующих моделей надежности программного обеспечения и методов разработки надежных программ. Построение модели надежности, основанной на теории массового обслуживания. Моделирование поведения программного продукта в процессе тестирования и эксплуатации. Проверка достоверности модели на практике при разработке и эксплуатации реальных программных систем. Теоретической основой для построения модели является теория массового обслуживания, теория вероятностей и методы разработки программного обеспечения, международные и отечественные стандарты по программному обеспечению. Основополагающими трудами в этих областях являются труды Майерса Г., Шеннона К., Колмогорова А. Н., Котельникова В. А., Вентцель Е. С., Овчарова JI.A., Липаева В. В. В качестве метода исследования выбран метод Монте-Карло. Базой для исследования является разрабатываемые в НИЦ «СНИИП» под руководством Чебышова С. Б., Зорина A.B., Бурьяна В. И.,.

Книжника A.C., Черкашина И. И., Рыжова H.B. и в Российском Научном Центре «Курчатовский институт» под руководством Митина В. И. системы автоматизации радиационного контроля ядерных объектов, системы внутриреакторного контроля и системы контроля, управления и диагностики ядерных объектов.

Информационная база исследования.

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

Научная новизна.

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

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

— разработана методология анализа надежности ПО как процесс возникновения и устранения ошибок в ПО на всех этапах жизненного цикла ПО;

— разработан алгоритм моделирования для прогнозирования поведения надежности ПО во времени.

Личный вклад.

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

Практическая значимость работы.

Результаты выполненных исследований могут быть использованы при построении ответственных программных систем применяемых на радиационно-опасных объектах, для прогнозирования и оценки надежности ПО и при расчете надежности систем в целом, а именно СВРК, СКУД, АСКРО, АСРК для разработки и эксплуатации малых и средних программных комплексов.

Апробация результатов исследования.

Основные положения и результаты диссертационной работы были опробованы и применены:

— при разработке и эксплуатации автоматизированной системы радиационного контроля Волгодонской АЭС;

— при разработке автоматизированной системы радиационного контроля НИЦ «СНИИП»;

— при разработке, испытаниях и эксплуатации системного программного обеспечения программно-технических средств СВРК и СКУД АЭС Козлодуй (Болгария), Моховце (Словакия), Тяньвань (Китай), Бушер (Иран), Балаково, Калинин, Волгодонск (Россия).

— при разработке и эксплуатации диагностической программы ПТС серии ПАМИР;

— при руководстве лабораторией разработки программных средств для определения оптимальных ресурсов, необходимых для разработки и сопровождения ПО;

— при участии в разработке новой редакции стандарта «IEC 62 138 Ed. l: Nuclear power plants — Instrumentation and control for systems important to safetySoftware for computer-based I&C systems supporting category В or С fonctions» в качестве эксперта комиссии 45 А МЭК.

Где и когда докладывались и публиковались основные результаты работы — см. Публикации по теме диссертации стр. 155.

Перечень базисных положений, выносимых на защиту:

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

— Рассмотрены существующие на сегодняшний день модели надежности ПО. Необходимо разработать новую более простую и комплексную модель надежности для малых и средних программ (до 100 тысяч строк, участие 2−10 программистов), так как существующие модели либо слишком сложны, либо учитывают только одну из сторон разработки ПО, часто основанной на объеме текста программ и начальном количестве ошибок.

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

— Изучено распределение ошибок по этапам ЖЦ и делается вывод по оптимальному распределению времени для разработки высоконадежного ПО. Рассчитаны оптимальные ресурсы для разработки и сопровождения надежного ПО.

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

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

Структура диссертационной работы.

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

В главе 2 предлагается новая модель надежности ПО, построенная на основе марковской теории массового обслуживания.

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

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

В приложениях приводятся листинги программ и описание существующих моделей надежности ПО.

3.5. Выводы.

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

2. Сочетание двух подходов — марковской модели надежности ПО и прогнозирования при помощи метода Монте-Карло — позволяет более точно и более всесторонне оценить характеристики надежности ПО. В частности, это позволяет найти начальное количество ошибок в ПО.

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

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

5. Изучено влияние на надежность ПО интенсивность обращения клиентов к серверу. Сделан вывод, что эта характеристика при малом количестве клиентов не сильно влияет на надежность ПО т.к. каждый клиент обычно работает в своей узкой части области данных и «выбивает» ошибки из этой части и остается значительная не проверенная часть области данных.

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

4.

ЗАКЛЮЧЕНИЕ

.

1. На основании изучения современных методов разработки качественного (прежде всего надежного, Кг > 0,999) ПО, делается вывод о необходимости использования принципов экстремального программирования для разработки высоконадежного ПО в условиях ограниченных ресурсов.

2. Изучены существующие модели надежности ПО и методы разработки надежного ПО. На основе сделанного обзора можно констатировать: отсутствует общее решение проблемы надежности ПО и есть много частных решений не учитывающие такие существенные факторы как интенсивность внесения и устранения ошибок в программе, время разработки ПО. При этом влияние на надежность ПО объема и сложности текста программ в настоящее время непрерывно уменьшается. Таким образом ни одну из существующих моделей нельзя считать достаточной для оценки надежности ПО малого и среднего объема (до 100 тысяч строк) из-за неопределенности их входных параметров — таких как начальное количество ошибок в ПО, количество ветвлений, циклов и т. п.

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

Основные характеристики случайного процесса появления и устранения ошибок в программе сведены в таблицу 4 (стр. 65).

Для описания надежности работы «-однотипных программ получены формулы как для общего случая (см. 2.44 — 2.47), так и для стационарного слуft /L Я чая (2.49 и 2.50): mx=mmx (t) =—-— = п-а, где а=-, ju = const — интенсив.

->" Я + ju A + ju ность пуассоновского потока отказов каждой программы, Я = const — интенсивность пуассоновского потока восстановления каждой программы;

Dx=unDx (t) = ^^ = n-a-(l-a).

-><" (Я + ¡-л).

Дана интерпретация работы п однотипных программ как «-канальная система обслуживания заявок, которая имеет большое практическое значение, так как позволяет решать задачи достаточности ресурсов (надежности) программ обработки поступающих данных. Такие классы программ очень распространены в системах важных для безопасности РОО. Приведены конкретные примеры расчетов.

В модели учтено влияние на надежность ПО следующих факторов:

— отказы в исправлении ошибок;

— недостоверность исправления ошибок (ошибка не исправлена или внесена новая ошибка);

— размер очереди и время ожидания в очереди заявок на устранение ошибок;

— взаимопомощь между программистами при устранении ошибок;

— ограничение на время пребывание заявки в очереди;

— количество программистов, интенсивность исправления ими ошибок и интенсивность внесения ими новых ошибок в ПО.

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

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

Обобщены ранее полученные результаты для одной программы (прототипа сервера) и многих однотипных программ (прототип программ-клиентов) для описания ПО типа клиент-сервер. Для подобного ПО смешанного типа написана и численными методами решена система уравнений.

Показана работа модели на конкретных примерах. Полученные результаты хорошо согласуются с результатами полученными на практике.

4. Рассмотрены характеристики процесса размножения и гибели ошибок в ПО на различных этапах ЖЦ. Получены основные зависимости распределения ошибок по этапам ЖЦ для наиболее характерного случая (см. рис. 29 стр. 77 и рис. 30 стр. 78).

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

Количество ошибок при увеличении времени кодирования постепенно уменьшается. Следовательно, если временные ресурсы позволяют (а объем работ велик), то можно сократить время тестирования за счет увеличения времени кодирования. На практике обычно именно так и поступают.

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

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

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

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

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

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

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

7. Предложенный метод исследования (сочетания новой модели надежности ПО и программы моделирования надежности ПО) был опробован при разработке и эксплуатации ПО радиационно-опасных объектов (автоматизированной системы контроля радиационной обстановки (АСКРО) Волгодонской АЭС, при разработке АСКРО НИЦ «СНИИП», при разработке и эксплуатации системного программного обеспечения программно-технических средств верхнего уровня систем внутриреакторного контроля и систем контроля и управления АЭС Козлодуй (Болгария), Моховце (Словакия), Тяньвань (Китай), Волгодонской, Калининской, Балаковской (Россия), при разработке системы диагностики программно-технических средств «ПАМИР»). Результаты моделирования и модели были сравнены с результатами накопленного опыта при разработке и эксплуатации вышеперечисленного ПО. Полученные результаты хорошо согласуются с опытом и практикой.

Например, предложенный метод позволил оценить необходимое время опытной эксплуатации ПО АСКРО для достижения нужного уровня надежности ПО и передачи его в промышленную эксплуатацию. Задавая требуемую по техническим условиям надежность ПО равной 0,999, было получено время тестирования (около одного года), необходимое для достижения такой надежности. И действительно, на практике за найденное время удалось достичь нужного уровня устойчивой работы ПО. Без применения этого подхода обосновать такое время опытной эксплуатации при заданных ресурсах было бы затруднительно.

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

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

СОКРАЩЕНИЯ.

АСКРО — автоматизированная система контроля радиационной обстановки.

ВВЭР — водо-водяной энергетический реактор

ВС — вычислительное средство.

ЖЦ — жизненный цикл.

МНК — метод наименьших квадратов.

ММП — метод максимального правдоподобия.

ООД — область определения данных.

ОС — операционная система.

ПИ — программное изделие.

ПК — программный комплекс.

ПО — программное обеспечение.

ПТС — программно-техническое средство.

РОО — радиационно-опасный объект.

СВМО — среднее время между отказами.

СВРК — система внутриреакторного контроля.

СКУД — система контроля, управления и диагностики.

ТЗ — техническое задание.

ТУ — технические условия.

ЭП — экстремальное программирование.

ЯУ — ядерная установка.

ХР — eXtreme Programming, экстремальное программирование.

Показать весь текст

Список литературы

  1. Д., Миллер Г., Новак М. Практическое руководство по экстремальному программированию. -М.: Вильяме, 2002.-318 с.
  2. Бек К. Экстремальное программирование. М.: Питер, 2002. — 220 с.
  3. Е.С. Исследование операций. М.: Сов. радио, 1972. — 552 с.
  4. Е.С., Овчаров JI.A. Теория случайных процессов и ее инженерные применения. М.: Высшая школа, 2000. — 284 с.
  5. Вероятностные методы в вычислительной технике: Учеб. пособие для вузов по спец. ЭВМ / A.B. Крайников, Б. А. Курдиков, А. Н. Лебедев и др. М.: Высшая школа, 1986. — 282 с.
  6. .С. Надежность функционирования автоматизированных систем. Пермь: ПГТУ, 1999. -70 с.
  7. К., Сарсон Т. Структурный системный анализ: средства и методы. М.- ЭЙТЕКС, 1993. — ч. 1 ит. 2 — 188 с. и 214 с.
  8. ГОСТ Р ИСО/МЭК 9126−93. Информационная технология. Оценка программной продукции. Характеристики качества и руководства по их применению. 12 с.
  9. ГОСТ 28 195–89. Оценка качества программных средств. Общие положения. М.: Госком. СССР по стандартам — 38 с.
  10. В.А., Коростшъ Ю. М. Анализ и исследование методов оценки и увеличения надежности программ. Киев, 1990. — 44 с.
  11. Н. Учимся работать с Rational // Открытые системы. № 4 апрель 2003. — С. 54 — 57.
  12. ЮЛ., КотелюкЛ.А., Циклинский Н. И. Надежность и контроль ЭВМ. М.: Сов. радио, 1978.-416 с.
  13. К.А. Надежность, контроль и диагностика вычислительных машин и систем. М.: Высшая школа, 1989. — 320 с.
  14. Р., Браун К, КоббГ. Быстрое тестирование. М.: Вильяме, 2002. — 384 с.
  15. С., ФолкД., Нгуен Е. К Тестирование программного обеспечения. M.: DiaSoft, 2001. — 544 с.
  16. А.И., ЛипаевВ.В. Сертификация качества функционирования автоматизированных информационных систем. М: Вооружение, 1996. — 276 с.
  17. Ф. Введение в Rational Unified Process. 2-е издание. — M.: Вильяме, 2002. — 240 с.
  18. А.Ф. Оценка качества программы ЭВМ. К- Техника, 1984. — 168 с.
  19. А.Л. Фактор надежности в оптимизации аппаратуры для научных исследований // Технологии приборостроения № 1 (5) (СНИИП) 2003. — С. 62 — 65.
  20. JIunaee В. В. Надежность программных средств. М.: СИНТЕГ, 1998. — 232 с.
  21. В.В. Функциональная безопасность программных средств. М.: СИНТЕГ, 2004. — 340 с.
  22. МайерсГ. Надежность программного обеспечения. М.: Мир, 1980. — 360 с.
  23. Международный стандарт. МЭК 60 880−2. Программное обеспечение компьютеров в системах важных для безопасности атомных электростанций. IEC. М.: 2002. — 90 с.
  24. В.М., Рякин О. М. Прикладные методы верификации программ. М.:Радио и связь, 1988.-256 с.
  25. Л.А. Прикладные задачи теории массового обслуживания. М.: Машиностроение, 1969. -324 стр.
  26. .П., Юсупов P.M. Оценка надежности программного обеспечения. СПб: Наука, 1994. -84 с.
  27. Р.И., Никандров A.B. Методы оценки надежности программного обеспечения. СПб: Политехника, 1992. — 80 с.
  28. В.А. Метод оценивания и обеспечения надежности сложных программных комплексов. УДК 681.3.06 http://www.bezpeka.com/library/sci/smaginl.html, 2000.
  29. И. Инженерия программного обеспечения. М.: Вильяме, 2002. — 624 с.
  30. Т., ЛиповМ., Нельсон Э. Надежность ПО. М.: Мир, 1981. — 328 с.
  31. Д., ВоасД. 50 лет программирования: основные принципы качества // Открытые системы. № 3 март 2003. — С. 58−63.
  32. К. Работы по теории информации и кибернетике. М.: ИЛ, 1963. — 830 с.
  33. В.В. Надежность программного обеспечения систем обработки данных. М.: Финансы и статистика, 1987−271 стр.
  34. A.A., ОсовецкийЛ.Г., Мессих КГ. Структурное проектирование надежных программ встроенных ЭВМ. Л.:Машиностроение, 1989. — 296 с.
  35. CASE-Аналитик для IBM PC версия 1.1. Руководство аналитика.-М.:ЭЙТЕКС, 1992.-134 с.
  36. Encyclopedia of Software Engineering. Yol. 1 A-N- Yol. 2 O-Z. Editor J. Marciniak. J Wiley & Sons Inc. -2002.- 1930 p.
  37. ISO/EEC 14 498. Оценивание программного продукта.
  38. ISO/IEC 91 261:1998. Информационная технология. Характеристики и метрики качества программного обеспечения. — Часть 1: Характеристики и подхарактеристики качества.
  39. Larson D., Miller К. Silver Bullets for Little Monsters: Making Software More Trustworthy, IEEE IT Pro, March/April 2005 (русская версия: Ларсон Д., Миллер К. Серебряные пули для маленьких монст-ров//Открытые системы № 5−6 2005 с. 20 23)
  40. Littlewood В. Software Reliability Achievement and Assessment. London. Blackwell Scientific Publication.- 1987.-230 p.
  41. Musa J., IanninoA., OkumotoK. Software Reliability: Measurement, Prediction, Application. N.Y. McGraw Hill. 1987.-621 p.
  42. Vincent J., Waters A., Sinclair J. Software quality assurance. Vol II. A programmer guide. Englewood Cliff, New Yersey: Prentice-Hall. — 1988. — 192 p.
  43. Публикации по теме диссертации
  44. A.B., Федотов A.A., Мишин В, И., Калинушкин А. Е., Мусихин A.M., Ханджян А. О. Программно-технические средства и комплексы «ПАМИР». // Ядерные измерительно-информационные технологии. М., 2000. — № 2 — С. 25−35.
  45. A.A., Зорин A.B., Попов В. В., Федотов П. А., Ханджян А. О. Методы построения программно-технические средства верхнего уровня АСКРО // Тезисы третьей МНТК «Безопасность, экономика и эффективность атомной энергетики» М. -18−19 апреля 2002.
  46. A.B., Зорин A.B., Книжник A.C., Петров В. И., Рыжов Н. В., Тихонов A.A., Ханджян А. О., Чебышов С. Б. Автоматизированная система радиационного контроля Волгодонской АЭС // Ядерные измерительно-информационные технологии. М., 2002. — № 1. — С.37−48.
  47. A.B., Федотов A.A., Федотов П. А., Ханджян А. О. Программно-технические средства верхнего уровня для АЭС // Ядерные измерительно-информационные технологии. М., 2002. — № 1. -С.65−70.
  48. А.О. Модель и моделирование надежности программного обеспечения как системы массового обслуживания //Техника и технология. М., 2005. — № 2(8). — С. 76 — 85.
  49. А. О. Анализ современного состояния разработки надежного программного обеспечения // Естественные и технические науки. М., 2005. — № 2. — С. 220 — 227.
  50. А. О. Модель надежности программного обеспечения как системы массового обслуживания //Объединенный научный журнал. М., 2005. — № 7(135) март. — С. 63 — 71.
  51. А.О. Повышение надежности программного обеспечения ядерных радиационно-опасных объектов // Ядерные измерительно-информационные технологии. М., 2006. — № 3. — 10 стр. (принято в печать).
  52. A.A., Ханджян А. О. Обзор современного состояния разработки надежного программного обеспечения и модель надежности ПО // Новые промышленные технологии. М.: ЦНИ-ЛОТ, 2006. — № 6. — 10 стр. (принято в печать).
Заполнить форму текущей работой