7.2. Ефективність та надiйнiсть програмного забезпечення ІС
7.2.1. Специфiка програмного забезпечення як об'єкту дослiдження надiйностi
Пiд програмним забезпеченням (ПЗ) розумiють сукупнiсть програм i документiв на них для реалiзацiї цiлей i завдань ЕОМ.
Створення програм регламентується комплексом стандартiв єдиної системи програмної документації (ЄСПД), що встановлюють загальнi положення, види програм i програмних документiв, правила розробки, оформлення та обiгу програм i програмної документацiї.
Надiйнiсть програмних засобiв — це їх властивiсть, яка сприяє виконанню заданих функцiй при збереженнi в часi значення встановлених експлуатацiйних показникiв в заданих межах, що вiдповiдають заданим режимам i умовам використання, супроводу i вiдновлення цих засобiв.
Теоретичною основою методiв аналiзу надiйностi програмних засобiв є теорiя надiйностi технiчних систем. Однак, спроби механiчного перенесення основних положень цiєї теорiї стосовно ПЗ виявились неправомiрними внаслiдок ряду специфiчних особливостей цих засобiв. Надiйнiсть ПЗ визначається їх безвiдмовнiстю i вiдновлюванiстю.
Безвiдмовнiсть ПЗ — це властивiсть зберiгати працездатнiсть при їх використаннi в процесi обробки iнформацiї на ЕОМ. Безвiдмовнiсть ПЗ можна оцiнити ймовiрнiстю їх роботи без вiдмов при певних умовах зовнiшнього середовища протягом заданого перiоду спостережень. Вiдмова — це подiя, яка полягає в порушеннi працездатностi ПЗ. Пiд певними умовами зовнiшнього середовища вважається сукупнiсть вхiдних даних i стан обчислювальної системи. Заданий перiод спостережень вiдповiдає, як правило, необхiдному iнтервалу часу для виконання на ЕОМ розв'язуваної задачi.
Специфiка створення ПЗ полягає в тому, що в процесi їх вiдладки практично неможливо виявити i лiквiдувати всi iснуючi в них помилки. Прихованi помилки можуть викликати невiрне функцiонування ПЗ при певних спiввiдношеннях вхiдних даних. Тому наявнiсть помилки в ПЗ є головним фактором порушення нормальних умов їх функцiонування. З точки зору технологiї розробки ПЗ помилки можна роздiлити на наступнi типи:
• програмнi, викликанi неправильним записом на мовi програмуванняі помилками трансляцiї;
• алгоритмiчнi, пов'язанi з неповним формуванням необхiдних умоврозв'язку i некоректною постановкою задач;
• системнi, обумовленi вiдхиленням функцiонування ПЗ в обчислювальнiй системi i вiдхиленням характеристик взаємодiючих об'єктiввiд передбачуваних при проектуваннi.
Безвiдмовнiсть ПЗ i апаратури ЕОМ суттєво i по-рiзному залежить вiд вхiдних даних i часу функцiонування обчислювальної системи. Тип оброблюваних даних, як правило, не впливає на надiйнiсть апаратури. Поряд з цим поява вiдмов ПЗ пов'язана з тим, що в деякi моменти часу на обробку поступають малоймовiрнi i тому непередбаченi сукупностi даних, якi ПЗ не в станi коректно обробити. Внаслiдок такої специфiки природи вiдмов ПЗ оцiнка їх надiйностi при випробуваннях завжди буде вища, нiж при функцiонуваннi в реальних умовах.
Надiйнiсть ПЗ i апаратури ЕОМ визначається в основному двома факторами - надiйнiстю компонент i помилками, допущеними при проектуваннi. Але динамiка виявлення рiзного роду помилок в обидвох випадках суттєво вiдрiзняється. Якщо для апаратури з часом визначальним стає перший фактор, то для ПЗ навпаки — другий. Безвiдмовнiсть апаратури по сутi залежить вiд часу функцiонування. А залежнiсть надiйностi ПЗ вiд часу тiльки поверхнева. Насправдi частота вiдмов ПЗ визначається тiльки характером вхiдних даних.
Надiйнiсть ПЗ iстотно вiдрiзняється вiд надiйностi апаратних засобiв АIС. Вiдмови ПЗ — це, як правило, наслiдки помилок проектування. Якщо помилки виправляють вiдразу пiсля виявлення, то характер iнтенсивностi вiдмов ПЗ вiдповiдає такiй залежностi (рисунок 7.1):
Рис. 7.1. Iнтенсивнiсть вiдмов ПЗ
Важливою характеристикою надiйностi ПЗ є їх вiдновлюванiсть, яка визначається затратами часу i працi на усунення вiдмови. Вiдмова при функцiонуваннi може проявлятися у виглядi:
• передчасного аварiйного завершення виконання програми;
• недопустимого збiльшення часу виконання програми;
• зациклювання ЕОМ на виконаннi деякої послiдовностi команд програми;
• повної втрати чи незначного спотворення накопичених даних, необхiдних для успiшного виконання розв'язуваних завдань;
• порушення послiдовностi виклику окремих програм, внаслiдок чоговiдбувається пропуск необхiдних програм або непередбачене звернення допрограми;
• спотворення окремих елементiв даних (вхiдних, вихiдних,промiжних) в результатi обробки спотвореної початкової iнформацiї та iнш.
В ПЗ з високим рiвнем надiйностi деякi вiдмови (наприклад, зациклювання чи спотворення масивiв даних) можуть бути усуненi програмними методами. Завдання вiдновлення в таких випадках переходить в завдання усунення короткочасних збоїв.
Основною ознакою в класифiкацiї збоїв i вiдмов в ПЗ є тривалiсть вiдновлення. Коли її величина менша певного порогу, спотворення при функцiонуваннi ПЗ слiд вiднести до збоїв, в іншому разi спотворення носять характер вiдмов.
Вiдмови i збої за ступенем їх впливу на функцiонування ПЗ подiляються на три групи:
• вiдмови, якi в значнiй мiрi знецiнюють результати попередньогофункцiонування ПЗ i рiвносильнi втратам їх працездатностi;
• частковi вiдмови, якi в деякiй мiрi знецiнюють попереднi результати,але характеризуються швидким вiдновленням без тривалої втратипрацездатностi;
• збої, якi практично не знецiнюють результати функцiонування ПЗ iне створюють вiдмовних ситуацiй.
Для збiльшення ефективностi процесiв вiдновлення доцiльно передбачити в ПЗ спецiальнi засоби дiагностики кодiв аварiйних завершень, ввести в програми контрольнi точки i забезпечити можливiсть рестарту з цих контрольних точок.
При бiльш високому рiвнi автоматизацiї процесiв вiдновлення ПЗ пiдвищується стiйкiсть їх функцiонування (здатнiсть обмежувати наслiдки власних помилок i несприятливих впливiв зовнiшнього середовища (несправнiсть апаратури, некоректнiсть вхiдних даних, помилки оператора та iнш.) або протистояти їм). Для цього в ПЗ повиннi бути передбаченi засоби, якi б дозволяли:
• проводити систематичний контроль i оперативно виявляти аномалiїпроцесу функцiонування або стану програм i даних;
• дiагностувати виявленi спотворення;
• виробляти рiшення i вибирати методи та засоби оперативноговiдновлення;
• реалiзувати оперативне вiдновлення нормальної працездатностi;
• реєструвати кожен збій чи вiдмову, що сталися, узагальнювати данiспотворень для виявлення випадкiв, якi потребують допрацювання програм.
Реалiзацiя таких можливостей здiйснюється за рахунок введення над-лишковостi в програми, данi i процес функцiонування ПЗ. Вiдповiдно над-лишковiсть ПЗ можна роздiлити на програмну, iнформацiйну i часову.
Програмна надлишковiсть полягає в застосуваннi кiлькох варiантiв ПЗ, якi вiдрiзняються методами розв'язку деякої задачi чи програмною реалiзацiєю одного й того ж методу.
Iнформацiйна надлишковiсть полягає в дублюваннi нагромаджених початкових i промiжних даних. Вона використовується для збереження достовiрностi даних, якi в найбiльшiй мiрi впливають на нормальне функцiонування ПЗ або потребують значного часу для вiдновлення. Для менш важливих даних iнформацiйна надлишковiсть використовується у виглядi завадозахисних кодiв, якi дозволяють тiльки виявити спотворення.
Часова надлишковiсть полягає у видiленнi необхiдних резервiв часу ЕОМ на виконання спецiальних програм, якi забезпечують оперативний контроль стану даних i обчислювального процесу, а також автоматичне вiдновлення ПЗ при виникненнi вiдмовних ситуацiй.
В процесi експлуатацiї ПЗ контроль їх надiйностi може проводитись шляхом трьох видiв контролю: профiлактичного, передпускового та оперативного.
Профiлактичний контроль проводиться перiодично (залежно вiд характеру розв'язуваних завдань) при неробочому станi ПЗ. Вiн полягає в аналiзi даних про зареєстрованi спотворення iнформацiї та обчислювального процесу, зiбраних в процесi функцiонування ПЗ. За ними з застосуванням iмiтацiйних i дiагностичних засобiв встановлюються причини спотворень i робляться спроби їх усунути. У випадку виявлення програмних помилок реєструються умови їх появи. Вся iнформацiя передається групi супроводу. Для проведення профiлактичного контролю готуються спецiальнi тести, набори даних, контрольнi результати та iнш.
Завдання передпускового функцiонального контролю полягає в перевiрцi збережуваностi програм i масивiв даних, необхiдних для початкового пуску обчислювальної системи. Крiм того, перевiряється функцiонування ПЗ на типових початкових даних при рiшеннi деякого набору заздалегiдь пiдготовлених контрольних задач. Коректування програм i даних для усунення виявлених спотворень, яке б привело до вiдхилення ПЗ вiд технiчної документацiї, на даному етапi контролю не допускається.
Оперативний контроль ПЗ необхiдний в процесi безпосереднього розв'язку задач для максимально швидкого автоматизованого вiдновлення при будь-яких спотвореннях обчислювального процесу i даних. Всi процедури в процесi оперативного контролю проводяться автоматично з допомогою ЕОМ. Методи оперативного контролю можна роздiлити на такi групи:
• контроль стану i збережуваностi програм в рiзних видах пам'ятi ЕОМ;
• контроль динамiки процесу виконання програм, збереження зв'язкiві взаємодiї мiж компонентами ПЗ при їх функцiонуваннi;
• контроль стану i змiн даних в пам'ятi ЕОМ.
58
7.2.2. Фактори, якi визначають надiйнiсть програмного забезпечення
Головну роль у створеннi надiйного ПЗ вiдiграють правильна органiзацiя i управлiння процесом розробки:
• пiдготовка iнженерного i керiвного персоналу з технологiї використання обчислювальних машин;
• контроль видачi i змiн програм;
• постiйний зв'язок мiж розробником i замовником ПЗ;
• використання ефективних методiв контролю процесу розробки програмної документацiї;
• впровадження стандартiв, регламентуючих роботи з проектування ПЗ.Важливу роль в пiдвищеннi якостi i надiйностi розроблюваного ПЗ
вiдiграє постiйний контроль у виглядi досить формалiзованих оглядiв проектної i програмної документацiї спецiальною групою експертiв, в яку входять: спецiалiсти з проектування i програмування; спецiалiсти з вiдладки i випробовувань ПЗ; спецiалiсти з компоновки програм; представники замовника.
Пiдвищенню якостi розробки складних програм сприяють прогресивнi методи структурного програмування i принцип модульностi ПЗ. Модульна побудова програм сприяє використанню з уже створених програмних продуктiв добре вiдлагоджених компонентiв в нових розробках. Заборона на прийняття потенцiйно ненадiйних програмних конструкцiй, можливiсть оперативного автономного контролю результатiв функцiонування модуля забезпечують високу ймовiрнiсть усунення помилок на початкових етапах розробки ПЗ.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 Наверх ↑