BC/NW
2008, №2 (13): 5.1
ПОВЫШЕНИЕ НАДЕЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ СИСТЕМЫ УПРАВЛЕНИЯ
Суханова Н.В., Кабак И.С.
(Москва, МГТУ «Станкин», Россия)
В работе предложена методика оценки надежности программного
обеспечения (ПО) по данным о надежности его компонентов. Предложенная
математическая модель позволяет проводить оценку надежности ПО:
-на этапе проектирования системы управления,
-при выборе структуры и средств реализации ПО,
- при разработке и отладке ПО,
- в процессе эксплуатации системы управления.
Надежность является одним из главных показателей эффективности для систем
управления оборудованием. Очевидно, что отказ системы управления приводит к
простою оборудования, нарушению технологического процесса и сокращению объемов
выпускаемой продукции. Системы управления сложными комплексами оборудования в
машиностроении должны обладать гарантированным уровнем надежности. Согласно
ГОСТ 27.002-83 [1], надежность определяется как свойство, обеспечивающее
возможность выполнения устройством заданных
функций с установленными
характеристиками в определенных условиях эксплуатации и в течение требуемого интервала времени.
Современные микропроцессорные системы управления включают
два основных компонента:
- аппаратные средства;
- программное обеспечение.
Аппаратные и программные средства систем управления гибких
производственных систем (ГПС) и
роботизированных комплексов (РК) являются сложными и уникальными изделиями.
Надежность таких систем управления определяется с помощью расчетных методов, с
использованием математических моделей. При оценке надежности сложных
микропроцессорных систем управления, как правило, рассчитывают надежность
аппаратных средств по данным о надежности
компонентов. Для повышения надежности аппаратных средств
используются два основных метода:
- повышение надежности компонентов;
- применение отказоустойчивой архитектуры, резервирование.
Отличительной особенностью микропроцессорных систем является
гибкая программируемая логика управления. При оценке надежности
микропроцессорных систем управления необходимо учесть вероятность отказов
программного обеспечения.
В данной работе предложена математическая модель для оценки
надежности программного обеспечения. Предлагается распространить методы оценки
надежности аппаратных средств на программное обеспечение, с учетом его
специфики. Определение отказа программного обеспечения (ПО) дано
в работах [2-4]. Согласно определению проф. Липаева В.В. [2]
под надежностью программы понимается ее
безошибочность. Основное внимание уделяется тестированию и отладке ПО с целью
выявления и исправления ошибок. Программа
называется надежной, если корректен алгоритм ее работы, и программа соответствует
спецификациям поставленной
задачи.
Объем функций системы управления, реализуемых с помощью
программных средств, имеет тенденцию
к увеличению. Усложнение программы
делает невозможным ее тестирование с глубиной 100%, для всех возможных
сочетаний входных и выходных воздействий. После проведения комплексной отладки
и эксплуатационных испытаний в программном
обеспечении могут быть «скрытые»
ошибки.
ЦЕЛЬ РАБОТЫ - повышение эффективности
микропроцессорных систем управления оборудованием на основе методов оценки
надежности программного обеспечения.
Поставленная цель достигается путем решения следующих задач:
- разработки методики оценки надежности ПО системы управления по данным
о надежности его компонентов;
- оценки вероятности отказов для компонентов программного обеспечения;
- оценки надежности ПО системы управления на основе предложенной
методики.
Известны следующие основные модели надежности программного
обеспечения (ПО) [4]: статистические и аналитические.
Например, известна аналитическая модель надежности программного обеспечения, которая описана в работах З. Джелински, Р.Моранда и М.Шумана [4]:
, (1)
где R(t)-функция надежности,
вероятность того, что ни одна ошибка не проявится на интервале [0;t]; z- плотность распределения
вероятности ошибки.
Согласно этой модели, среднее время между отказами T равно:
(2)
Из формул (1-2) следует, что среднее время Т между
последовательными моментами обнаружения ошибок должно увеличиваться.
Х. Миллс [4] предложил статистический способ оценки
количества ошибок в программе по результатам тестирования. В начале тестирования
в коды программы случайным образом вносятся преднамеренные искажения, которые
имитируют присутствие ошибок. В процессе тестирования программы выявляется
часть внесенных и собственных ошибок.
Модель надежности программного обеспечения Х.Миллса позволяет оценить число ошибок в программе:
, (3)
где N-
первоначальное число ошибок в программе, s- количество внесенных ошибок, v- число найденных внесенных ошибок, n- число найденных собственных ошибок.
При другом
статистическом способе оценки [4] тестирование программы проводят две группы
разработчиков, используя независимые наборы тестов. По количеству выявленных
ошибок для каждой группы и ошибкам,
которые выявили обе группы, определяют
общее количество ошибок в программе:
, (4)
где N-
общее число ошибок в программе, N1,N2- число ошибок
обнаруженных соответственно, первой и второй группами разработчиков, N12- число ошибок,
обнаруженных обеими группами разработчиков.
Недостатком статистических способов оценки количества ошибок
в программе является низкая достоверность полученных результатов и
необходимость проведения большого количества испытаний. Статистические модели
надежности ПО не позволяют прогнозировать надежность до начала отладки.
Аналитические методы оценки надежности ПО
используют ряд параметров, которые можно определить только эмпирически.
Таким образом, известные модели надежности позволяют
получить только приближенную оценку количества ошибок в программном
обеспечении. Для оценки надежности микропроцессорных систем управления
оборудованием этих данных недостаточно.
В данной работе предложена математическая модель надежности
программного обеспечения, которая использует данные о структуре ПО. Эта модель
позволяет получить предварительную оценку надежности уже на стадии
проектирования системы управления, чтобы своевременно внести изменения в
структуру ПО.
Математическая модель надежности программного обеспечения
построена на базе известной прогнозирующей модели, в основе которой лежит
предположение о независимости отказов и экспоненциальном распределении времени
между отказами [5].
Программное обеспечение рассматривается как сложная система,
которая состоит из отдельных компонентов, модулей. Программным компонентом,
модулем может быть команда, составной оператор языка программирования,
процедура, функция, объект, класс и т.д.
Для каждого программного модуля введем следующие
характеристики:
- вероятность отказа модуля
(определяется через интенсивность отказов λi);
- вероятность проявления отказа при выполнении модуля - Pi.
Интенсивность отказов модуля λi
зависит от способа его реализации (от сложности задачи, языка
программирования, среды разработки и т.д.). Вероятность проявления отказа при
выполнении модуля Pi зависит от структуры ПО.
Все множество модулей разобьем на N групп, типов. Число типов (групп) N определяется средствами
реализации программных модулей (такими как язык программирования, среда
разработки и т.д.) или квалификацией разработчиков ПО, опытом их работы.
Тогда интенсивность отказов ПО можно определить через интенсивности отказов N типов модулей:
, (5)
где Λ(t)-
интенсивность отказов ПО; λi(t)
- интенсивность отказов модуля i-того типа; Pi(t) - вероятность проявления
ошибки при выполнении модуля i-того
типа; t-время отладки, N- количество типов, ni- количество
модулей i-того типа.
Коэффициент Pi
учитывает вероятность проявления ошибки при выполнении модуля i-того типа. Эта вероятность
определяется как произведение
вероятностей проявления ошибок и вероятностей внесения новых ошибок при
доработке ПО:
(6)
где вероятность проявления ошибок - это отношение времени выполнения программного модуля Ti к длительности рабочего цикла Tp (или к времени формирования результата); вероятность внесения новых ошибок при доработке ПО - это отношение количества исправлений в тексте данного программного модуля Ni к общему количеству исправлений Np, внесенных при доработке ПО.
Таким образом, в модели надежности ПО (5) учитываются
следующие параметры:
- структура ПО (количество типов, групп программных модулей N);
- средства реализации модулей (язык программирования, среда разработки
и т.д.), которые определяют значение интенсивности отказов модулей λi(t);
- время формирования результата Tp;
- количество выявленных ошибок Np.
На стадии проектирования системы управления в модели
надежности ПО (5) можно использовать аналитические (или экспертные) оценки
указанных параметров. Затем при разработке и отладке ПО значения параметров
следует уточнить. В процессе эксплуатации системы оценку надежности (5) можно
корректировать с учетом количества выявленных ошибок Np. . В результате отладки из-за устранения ошибок надежность ПО увеличивается,
интенсивность отказов Λ(t)
уменьшается.
Были проведены испытания ПО компьютерной системы управления. В процессе эксплуатации ПО был отмечен перемежающийся отказ, с автоматическим восстановлением работоспособности. Отказ проявлялся с некоторой периодичностью, которая составляла около 7 мин. При отказе ПО однократно формировало неверный результат.При испытаниях определяли наработку между отказами ПО Δt отк. Затем с целью исправления ошибки, внесли изменения в программу. Данные об отказах в исходном тексте ПО и после двух исправлений приведены в табл.1-3.
Наработка между отказами в исходном тексте ПО
(эксперимент№1)
Таблица 1
№ п./п. |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Δt
отк, мин |
7 |
10 |
17 |
24 |
7 |
7 |
21 |
Наработка между отказами после первого исправления в ПО
(эксперимент№2)
Таблица 2
№ п./п. |
1 |
2 |
3 |
4 |
5 |
6 |
Δt
отк, мин |
14 |
4 |
5 |
9 |
4 |
4 |
Наработка между отказами после второго
исправления в ПО
(эксперимент№3)
Таблица
3
№ п./п. |
1 |
2 |
3 |
4 |
Δt, мин |
7 |
10 |
14 |
21 |
t отк, мин |
7 |
17 |
31 |
52 |
F(t) |
1/4 |
2/4 |
3/4 |
1 |
p(t) |
|
|
|
1/4/21=0,011 |
После третьего исправления проводили испытания ПО в разных
режимах работы. Среднее время испытаний в одном режиме составляло 20 мин. Общее
время испытаний исправленной версии ПО составило 6 час. Отказы не были
обнаружены. ПО было признано годным к эксплуатации.
На основании экспериментальных данных (табл. 3) были
построены графики функции распределения F(t) и
плотности распределения p(t) времени наработки между
отказами (рис. 2 и 3), где t
–время, мин. Из графика (рис.3) видно, что плотность распределения имеет вид
монотонно убывающей ступенчатой функции, которую можно аппроксимировать
экспоненциальным законом распределения.
Рис.2. График функции распределения
Рис.3. График плотности распределения
Экспериментальные данные (табл. 1..3) подтверждают
математическую модель надежности программного обеспечения.
ВЫВОДЫ
Предложена математическая модель для оценки надежности ПО
системы управления оборудованием. В
оценке надежности учитывается структура ПО, средства реализации (язык
программирования, среда разработки и т.д.), время формирования результата,
количество выявленных ошибок.
Оценка надежности ПО системы управления выполняется:
-на этапе проектирования, при выборе структуры и средств реализации ПО
(с использованием экспертных оценок в качестве параметров модели),
- при разработке и отладке ПО с использованием данных об отказах
модулей и компонентов ПО,
- при испытаниях и в процессе
эксплуатации ПО системы управления - для оценки надежности по данным об отказах
и количестве исправлений в тексте
программы.
ЛИТЕРАТУРА
1.
ГОСТ 27.002-83.
Надежность в технике. Термины и определения.-М.: Изд. станд. 1984.
2. Липаев
В.В. Качество программного обеспечения. М: Финансы и статистика, 1983-C. 227.
3. Липаев В.В.
Надежность программного обеспечения.(Обзор концепций)/ Автоматика и телемеханика.- 1986. N10.
с.5-31.
4. Г.
Майерс. Надежность программного обеспечения. Москва, Мир, 1980.
5. Надежность технических систем. Справочник.//Под ред. Ушакова И.А.,М:Радио и связь., 1985.-С.32.