Научная статья на тему 'ПОВЫШЕНИЕ НАДЕЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ МЕТОДОМ МУЛЬТИВЕРСИОННОГО ПРОГРАММИРОВАНИЯ'

ПОВЫШЕНИЕ НАДЕЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ МЕТОДОМ МУЛЬТИВЕРСИОННОГО ПРОГРАММИРОВАНИЯ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
5
0
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
мультиверсионное программирование / надежность программного обеспечения / модель надежности / multiversion programming / N-version programming / software reliability / reliability model

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — О.Д. Стрелавина, Д.Л. Никифоров, В.А. Терсков

На основе модели оценки надежности программного обеспечения проведено исследование зависимости надежности программного компонента от количества его версий.

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — О.Д. Стрелавина, Д.Л. Никифоров, В.А. Терсков

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

INCREASING SOFTWARE RELIABILITY THROUGH MULTIVERSION PROGRAMMING

Article describes how software component reliability depends on the number of its versions. Research is based on the software reliability model.

Текст научной работы на тему «ПОВЫШЕНИЕ НАДЕЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ МЕТОДОМ МУЛЬТИВЕРСИОННОГО ПРОГРАММИРОВАНИЯ»

УДК 004.052.32

ПОВЫШЕНИЕ НАДЕЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ МЕТОДОМ МУЛЬТИВЕРСИОННОГО ПРОГРАММИРОВАНИЯ

О.Д. Стрелавина, Д. Л. Никифоров* Научный руководитель - В. А. Терсков

Сибирский государственный университет науки и технологий имени академика М. Ф. Решетнева Российская Федерация, 660037, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31

*Е-шаИ: nikiforov-danil1997@yandex.ru

На основе модели оценки надежности программного обеспечения проведено исследование зависимости надежности программного компонента от количества его версий.

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

INCREASING SOFTWARE RELIABILITY THROUGH MULTIVERSION

PROGRAMMING

O. D. Strelavina, D. L. Nikiforov* Scientific supervisor - V. A. Terskov

Reshetnev Siberian State University of Science and Technology 31, Krasnoyarskii rabochii prospekt, Krasnoyarsk, 660037, Russian Federation *Е-mail: nikiforov-danil1997@yandex.ru

Article describes how software component reliability depends on the number of its versions. Research is based on the software reliability model.

Keywords: multiversion programming, N-version programming, software reliability, reliability model.

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

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

В компонент программной архитектуры, функционирование которого особо критично по надёжности, может быть введена программная избыточность методом N-версионного программирования. Очевидно, что надёжность компонентов с программной избыточностью прямо пропорциональна глубине избыточности (или количеству различных его версий) и надёжности среды исполнения версий (алгоритма голосования или приемочного теста).

Актуальные проблемы авиации и космонавтики - 2021. Том 2

Надёжность мультиверсионного компонента i на уровне у, построенного из K версий методом мультиверсионного программирования для любого к равна [2]:

ъ=р (1-п (1 - рк)

V к=1 У

где ^ - вероятность безотказной работы алгоритма голосования, - вероятность безотказной работы версии

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

Результаты исследования компонента

Таблица 1

0.55 0.65 0.75 0.85 0.95

1 0.5500 0.65000 0.7500000 0.85000000 0.9500000000000

2 0.7975 0.87750 0.9375000 0.97750000 0.9975000000000

3 0.9089 0.95713 0.9843750 0.99662500 0.9998750000000

4 0.9590 0.98499 0.9960938 0.99949375 0.9999937500000

5 0.9815 0.99475 0.9990234 0.99992406 0.9999996875000

О надежности всей системы в целом могут говорить такие показатели как среднее время простоя Гй и среднее время до сбоя МИТ [3]. По перечисленным выше показателям определяется коэффициент готовности системы 5.

М Ып

+ 2 2

(п=1)&(пФу) п=1

(

(

М Му

т = 22{рих *[((+ТС+ ТЕУ)

у=1 I=1

( + ТСпп + ТЕпп) + 2 (( х ( + ТСЫ + ТЕш))

1еО„ш

*2[р4 х[(ТЛ + Щ + ТЕк) +

ру х

У У

кеД,

М Ып

( Л

+ 2 2ру х (ТАпп + ТСпп + ТЕпп) + 2 ( х(ТАп + ТСп + ТЕЫ))

(п=1)&(пФу) п=1 у

МТТр = 22{риу х(1 - Щ )х[шу. +

у=1 I =1 Ып ( (

2 2(1 -ру)х гипп +2((1 -Р1п:)хЩп)

М

=1)&(пФ у )п=1 V

( (

ЛЛ

кеД

2 (1 - ру

1еД М N

УУ

Тищ +

2 2((1 -ру)х(Типп +

(п=1 )&( пФ у) п=1

-2((1 - Рьппп )х Тиы)))))]}

„ _ MTTF

S —-

MTTF+т

где М- количество архитектурных уровней; N. - количество компонентов на уровне /; - множество индексов компонентов, зависимых от компонента / на уровне /; множество индексов компонентов, от которых зависит компонент / на уровне /; Р^ - событие сбоя, возникшего в компоненте / на уровне /; РЩ 1 - вероятность, того что компонент / на уровне / будет использоваться; ОТ^ - вероятность, того, что в компоненте / на уровне / возникнет сбой; - вероятность того, что в компоненте / на уровне / сбой не появится; -

условная вероятность того, что в компоненте m на уровне п возникнет сбой, если возникнет сбой в компоненте / на уровне /; ГЛ^ - относительное время доступа к компоненту / на уровне /; относительное время анализа сбоя в компоненте / на уровне /; Уй1^ -

относительное время устранения сбоя в компоненте / на уровне /; - относительное время использования компонента / на уровне /; - глубина программной избыточности компонента / на уровне /; - множество версий компонента /, на уровне /; - среднее время выполнения модуля i на уровне у.

На основе данной модели с помощью созданного программного обеспечения было проведено исследование зависимости надежности системы от количества версий данного компонента. Исследованная программная система состоит из 11 компонентов с надежностью равной единице и одного компонента, изначальная надежность которого равна 0,65. Данные представлены в таблице 2, Первая колонка показывает количество версий, а первый ряд данных - показатели надежности системы до введения мультиверсионности.

Таблица 2

Результаты исследования системы_

Среднее время простоя Среднее время до сбоя Коэффициент готовности

1 29677 184836 0.65000

2 10450 197628 0.87750

3 3724 202105 0.95713

4 1370 203672 0.98499

5 546 204221 0.99475

Библиографические ссылки

1. Тынченко В.В., Царев Р.Ю. К вопросу оценки надежности программного обеспечения с многоуровневой архитектурой // Современные проблемы науки и образования. - 2015. - № 2 (часть 1)

2. Новой А.В. Система анализа архитектурной надежности программного обеспечения.: дис. канд. техн. наук: Красноярск, 2011 - 131 с.

3. Русаков М.А. Многоэтапный анализ архитектурной надежности в сложных информационно-управляющих системах: дис. канд. техн. наук: Красноярск, 2005 - 168 с.

© Стрелавина О. Д., Никифоров Д. Л., 2021

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