овості програми не представляється можливим. Тому по ставлення до такій властивості, як безпомилковість, можна говорити про кількість залишилися в програмі помилок (ще не виявлених); зауважимо, що існують методи, що дозволяють оцінити цю кількість. Відповідно, можна говорити про рівень безпомилковості. p> 2. Програма повинна однозначно реагувати на некоректну зовнішнє середовище. Для якихось випадків вона повинна продовжувати функціонування (зазначивши, що зіткнулася з некоректністю), для якихось повинні бути обрані обхідні шляхи, для якихось може бути обраний шлях зниження продуктивності (деградації). У якихось випадках програма може припинити виконання, але в будь-якому разі не повинно бути непередбачуваної поведінки, всі відхилення від норми повинні бути заздалегідь передбачена, неприпустимо поширення некоректностей в інші програми.
Така властивість програми назвемо перешкодостійкістю.
Таким чином, можна говорити про два види причин, що знижують надійність функціонування програми.
перше, внутрішні причини, помилки в конструктивних засобах програми, що призводять до порушення правильності, до того, що при деяких коректних значеннях вхідних величин (Включаючи і зовнішні впливи) програма або видає неправильний результат, або взагалі не завершується. Інакше кажучи, знижується рівень безпомилковості програм.
друге, зовнішні причини, недостатній захист від некоректних значень вхідних величин і зовнішніх впливів. Строго кажучи, це можна вважати помилками в керуючих засобах програми, знижують завадостійкість програми, достовірність отримання правильного результату.
Відповідно з цим, підвищення надійності програми пов'язано або з підвищенням рівня безпомилковості програми, або з підвищенням рівня завадостійкості, або і з тим, і з іншим. Надалі ми розглянемо методи підвищення надійності саме з цих позицій.
Технології підвищення безпомилковості програм
Методи підвищення безпомилковості програм можна розділити на дві групи: методи, застосовувані при проектуванні і кодуванні програм, і методи, застосовувані при налагодженні готової програми.
До першої групи методів відносяться, зокрема:
В· використання принципів модульного програмування;
В· використання принципів структурного програмування;
В· застосування мов високого рівня;
В· підвищення рівня Непроцедурного програми;
В· методи синтезу програм за специфікаціями і методи автоматичного докази програм.
Мета всіх цих методів - Попередити помилки, не допустити появи помилок у готовій програмі. Абсолютно ясно, що попередження помилок найсерйознішим чином підвищує ймовірність правильності програм. Фахівці називають різні цифри вартості знаходження, і виправлення помилок у програмі залежно від часу їх виявлення. Зазвичай стверджується, що раннє виявлення дешевше в 10 і більше разів.
Але якими б методами проектування ні користувався програміст, неможливо...