Надійність програмного комплексу

Визначають її як функцію надійності складових частин програмного комплексу. Ця процедура значно полегшується, якщо він побудований за модульним принципом. Мірою надійності програмного модуля вважають імовірність того, що модуль коректно реалізує задану функцію та коректно передає керування іншому модулю, передбаченому алгоритмом роботи програмного комплексу. Надійності модулів є незалежними величинами. Щодо коректності, то загальний результат роботи програми буде некоректним, якщо хоча б в одному з виконаних прогонів і модулів виявлять помилку. Надійність кожного з модулів вважають визначеною при визначенні надійності програмного комплексу. Тобто, по суті, визначають надійність керування модулями.

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

Структуру керування програмами зображують у вигляді напрямленого графа, де кожна вершина відповідає певному програмному модулю, а дуга ( , ) – можливому передаванню керування від модуля до модуля . Кожній дузі ( , ) слід співвіднести ймовірність переходу з вершини по дузі ( , ), а кожній вершині – ймовірність безвідмовної роботи відповідного модуля. Граф програми має вхідну вершину , вихідну вершину та дві додаткові вершини, що відповідають коректному і помилковому вихідним результатам.

Вважають, що при появі помилки по дузі ( , ) з імовірністю незалежно від правильності наступного оброблення, здійснюють перехід у стан , а при видаванні правильного результату модулем – перехід до виконання модуля з імовірністю . Коректному завершенню програми відповідатиме перехід із вихідного стану у стан з імовірністю . Тоді матрицю перехідних імовірностей , де її елементи відповідатимуть переходові марківського процесу зі стану в стан , зображують так:

.

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

.

Необхідно визначити для кожного цілого як -ту степінь . – ймовірність того, що марківський процес за кроків перейде зі стану в стан . Тоді матриця визначає ймовірність переходу з одного стану в інший за довільну кількість кроків. Якщо – квадратична матриця розмірності , то .

Якщо матриця , згідно з теорією ймовірностей, тоді отримують: , звідки надійність програмного комплексу визначають як .

Отже, ймовірність безвідмовної роботи програмного комплексу залежить від імовірності безвідмовної роботи модулів і зв’язків між ними.