Проблеми надійності програмних комплексів

Лекція 4 НАДІЙНІСТЬ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ

 

 

Інформаційні системи знаходять все більш широке застосування, причому витрати на складання програмних комплексів для інформаційних систем ростуть швидше, ніж вартість відповідного апаратного устаткування. Тому, природно, основні зусилля повинні бути спрямовані на розробку надійних програм для інформаційних систем (ІС).

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

- розробка вірних програм;

- перевірка програм з метою виключення помилок;

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

Варто помітити, що теорія надійності програм ще не розроблена на такому рівні, як теорія надійності апаратного устаткування. Однак вже з'явилося кілька важливих концепцій, і ведеться велика робота в цьому напрямку.

З погляду залежності надійності від процесу випробувань між апаратним устаткуванням і програмним забезпеченням існує важливе розходження. Якщо програму можна було б перевірити по елементах для всього набору вхідних даних, то помилка в програмних комплексах теоретично ніколи не з'явилися б. Навпаки, апаратне устаткування може виходити з ладу навіть після проведення самих ретельних випробувань. В зв'язку з цим виникає питання: чи можна вважати, що помилки програмних комплексів носять випадковий характер? По суті, програма відображає елементи простору входів у відповідні елементи простору виходів. При цьому у випадку наявності помилки деяка підмножина простору входів відображається в простір виходів неправильно. Якщо було б відомо поводження виходу при будь-яких можливих входах і можна було прогнозувати майбутні входи, то ми могли б прогнозувати помилки зовсім точно. Однак властивості деякого великого блоку програми ніколи не бувають відомі повністю, оскільки майже неможливо перевірити програмні засоби при будь-яких очікуваних значеннях входів. Входи програм також є випадковими. В силу того, що і для самої програми, і для її входів характерна невизначеність, можна вважати, що поява помилок є випадковим процесом.