Научная статья на тему 'Нечеткая модель оценки надежности и безопасности функционирования программного обеспечения по результатам испытаний'

Нечеткая модель оценки надежности и безопасности функционирования программного обеспечения по результатам испытаний Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
479
95
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МОДЕЛИ РОСТА НАДЕЖНОСТИ / ИСПЫТАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ / СЕРТИФИКАЦИЯ / ДЕФЕКТЫ / УЯЗВИМОСТИ / ОШИБКИ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Марков А. С.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Нечеткая модель оценки надежности и безопасности функционирования программного обеспечения по результатам испытаний»

УДК 681.3.06

А. С. Марков

НЕЧЕТКАЯ МОДЕЛЬ ОЦЕНКИ НАДЕЖНОСТИ И БЕЗОПАСНОСТИ ФУНКЦИОНИРОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ПО РЕЗУЛЬТАТАМ ИСПЫТАНИЙ

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

E-mail: mail@cnpo.ru

Ключевые слова: модели роста надежности, испытания программного

обеспечения, сертификация, дефекты, уязвимости, ошибки.

Испытания программных комплексов по требованиям надежности функционирования и безопасности информации являются одним из самых длительных и трудоемких этапов внедрения автоматизированных систем. В первую очередь это определено чрезвычайной структурной сложностью современного программного обеспечения (ПО) и его неоднородностью. Неполная информация о структуре, принципах построения и функционирования ПО, разнородность состава, наличие заимствованных компонентов, ограниченный объем спецификаций затрудняют оценку и прогнозирование надежности функционирования ПО. В таких случаях традиционные подходы получения и прогнозирования достоверных оценок сопряжены со значительными затратами на их реализацию [1-3]. Поэтому актуальным считается построение моделей на базе теории нечетких множеств, позволяющих с приемлемой для практики точностью получить оценки надежности функционирования ПО [4].

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

Нечеткие модели оценки надежности ПО описаны в [2, 7]. Особенность этих моделей состоит в том, что все они ориентированы на проведение статического и динамического анализа графа программы, что затруднено на практике по причине чрезвычайно высокой структурной сложности современных программных систем и сред [5, 6]. Известные модели роста надежности [2, 7-13], используемые при тестировании по методу «черного ящика», имеют монотонный характер, что не в полной мере соответствует реальному процессу исправления ошибок или обновления ПО (рис. 1). Процесс испытаний и отладки ПО немонотонной функцией роста надежности ПО предлагается описать, используя для учета неполноты входных данных возможности теории нечетких множеств [4].

Немонотонная функция роста надежности ПО имеет вид [6]

где Рп — вероятность успешного прогона ПО после п-й доработки; Р — предельная степень надежности; р — начальная степень надежности; а — коэффициент эффективности доработки.

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

(

рп=Po-(Po- Po) i -a

(i)

V J

1

К p.

1 ! 2 13 14 '5

u-1

и Доработки

0 1 2 3 4 5 ...

... L-1 L Прогоны

Рис. 1. Рост степени надежности ПО при доработках

Логарифм функции максимального правдоподобия имеет следующий вид:

1п (К ) = ! {1,1п [1 - (Р„-(Р„- Р )(1 - а / Р„ У ] +

1=0

+ ( - )1п Рв -[( - Ро ))1 - а / ^ )1 ]},

где — число отказов в ^ -испытаниях; п — число доработок.

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

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

1. Размытость причинно-следственных связей автоматизированной системы как эргатической не позволяет четко разделить доработки на удачные и неудачные.

2. Определение доработки как функции от метрических характеристик программ не всегда соответствует действительности. Необходимы знания специалистов-разработчиков ПО.

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

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

Разработка нечеткой модели роста надежности программы.

Представим информацию о процессе отладки в виде множества

х = {*,■},

где х1 — доработка ПО, I = 1, п.

Число учитываемых доработок

п

т = , ■=1

где Хг ={0, 1} — характеристическая функция, определяющая наличие доработки х 1.

Формализуем возможную нечеткость доработки ПО путем перехода от характеристической функции {0, 1} до континуума [0, 1]. Тогда соответственно имеем:

1) нечеткое множество А = |[хг, /А (хг)]}, представляющее собой совокупность упорядоченных пар доработок х1 универсального множества X и функций принадлежности /А (х1), характеризующих наличие доработок;

2) множество учитываемых доработок Я = {т}, т = 0, п.

В этом случае нечеткое множество учитываемых доработок

М = {[т, / (т)]}, (2)

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

В общем случае функция принадлежности определяется следующим выражением:

/м = тахтт{/,..., /, ...,/,..., /п т)у

Для практического расчета разложим функцию принадлежности доработок по возрастанию и убыванию:

/0 — / — • * • — /т — /т+1 — ,

/0 ^-^/т ~ /т+1 /п ,

что позволяет получить основное расчетное соотношение:

/м (т) = т1п (//я+1, /т ).

Число учитываемых доработок т, соответствующее максимальной степени уверенности (т. е. максимальной функции принадлежности),

m = у mx,

Ъ

¿=0

0, если ft < ft,

где mj = < - ■ x ^ l1, если ft>ft.

Максимальную функцию принадлежности можно рассчитать следующим образом:

Mmax = minjnax ( A')-

1< к m 4 '

Применив принцип обобщения [4], перейдем от нечеткого множества учитываемых доработок (2) к искомому нечеткому множеству степеней надежности ПО:

P = {[ Pm, j (Pm)]}, (3)

где juP (Pm) = min (jui+1, jui ); m = 0, n; Pm — степень надежности, рассчитываемая по формуле (1).

Важно отметить, что, учитывая монотонную зависимость степени надежности ПО от числа доработок, можно формализовать нечеткое множество P (3) набором иерархически упорядоченных четких множеств. Согласно теореме декомпозиции [4], получаем

Up = U (aU У

ae[0,1]

|0, если ju(x )>a, где jP = < . ч

a I 1, если ju(x )<a.

Назначая величину a исходя из конкретных условий эксплуатации ПО и точности экспертной оценки, можно получить интервальную (гарантированную) степень надежности ПО

Р = {Pm I Um(m) >a}.

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

A = {(1, 0,0), (2, 0,4), (3, 0,2), (4, 1,0), (5, 0,9)}.

После упорядочения нечеткого множества A по значениям функции принадлежности нечеткое множество учитываемых доработок имеет вид

M = {(0, 0,0), (1, 0,2), (2, 0,4), (3, 0,6), (4, 0,1), (5, 0,0)}.

Рассчитав степени надежности по формулам (1), получили нечеткое подмножество степеней надежности ПО

P = {(0,31, 0,2), (0,69, 0,4), (0,97, 0,6), (0,98, 0,1)}. В соответствии с принятым уровнем гарантии a = 0,4

Р = [0,69, 0,97].

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

СПИСОК ЛИТЕРАТУРЫ

1. Казарин О. В. Безопасность программного обеспечения компьютерных систем. - М.: МГУЛ, 2003.

2. Карповский Е. Я., Чижов С. А. Надежность программной продукции. -Киев: Техника, 1990.

3. Липаев В. В. Функциональная безопасность программных средств. - М.: СИНТЕГ, 2004.

4. Марков А. С. О возможности использования теории нечетких множеств для оценки качества программных средств ЛВС // Тез. докл. Всесоюзной конференции, посвященной 50-летию ВИКИ им. А.Ф. Можайского «Научно-технические проблемы развития автономных систем управления и вычислительных средств РКТ» - Л.: МО СССР, 1990. - С. 306-315.

5. Марков А.С.Миронов С. В., Цирлов В. Л. Выявление уязвимостей в программном коде // Открытые системы. СУБД. - 2005. - № 12. - С.64-69.

6. Марков А. С., Годердзишвили Г. М. Модель оценки степени отлажен-ности программного обеспечения по результатам испытаний // Методы и средства управления и контроля. - Л.: МО СССР, 1987. - С. 51-52.

7. Смагин В. А. Основы теории надежности программного обеспечения. -СПб.: ВКА им. А.Ф. Можайского, 2009.

8. Черкесов Г. Н. Надежность аппаратно-программных комплексов - СПб.: «Питер», 2005.

9. Andersson B., Persson M. Software Reliability Prediction. - SEBIT, 2004. - 32 р.

10. Corro Ramos. Statistical Procedures for Certification of Software Systems. -TSIM, 2009. - 195 p.

11. Hoang Pham. System Software Reliability. - Springer, 2006. - 440 p.

12. IlkkaKaranta. Methods and problems of software reliability estimation. - VTT, 2006. - 60 p.

13. Rung-TsongLyu M. Software Reliability Theory. - John Wiley & Sons, 2002. - 43 p.

Статья поступила в редакцию 19.10.2011

i Надоели баннеры? Вы всегда можете отключить рекламу.