МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Національний університет «Львівська політехніка»
Кафедра САП
КУРСОВА РОБОТА
на тему:
«Забезпечення надійності ПЗ»
З курсу: «Розробка систем комп'ютерного проектування»
Зміст
Перелік умовних скорочень___________________________________________3
Вступ______________________________________________________________4
1. Надійність і сторони надійності інформаційних систем__________________5
2. Помилки в ПЗ_____________________________________________________7
2.1 Причини виникнення помилок в ПЗ__________________________________7
2.2 Класифікація помилок_____________________________________________7
3. Показники надійності______________________________________________10
4. Показники ремонтопридатності_____________________________________15
5. Показники довговічності___________________________________________16
6. Показники зберігаємості___________________________________________17
7. Копмлексні показники надійності___________________________________18
8. Побудова надійних систем з ненадійних компонентів___________________21
9. Методи проектування надійного програмного забезпечення_____________23
Висновок__________________________________________________________29
Список використаної літератури_______________________________________30
Перелік умовних скорочень
АІС
Автоматизовані інформаційні системи
АСУ
Автоматизовані системи управління
ЕОМ
Електронно обчислювальна машина
ПЗ
Програмне забезпечення
ІС
Інформаційні системи
Вступ
Надійність програмного забезпечення набагато важливіше інших його характеристик, наприклад, часу виконання, і хоча абсолютна надійність сучасного програмного забезпечення, мабуть, недосяжна, до цих пір не існує загальноприйнятих заходів надійності комп'ютерних програм.
Проблема надійності програмного забезпечення відноситься, схоже, до категорії "вічних". У присвяченій їй монографії Г. Майерса, випущеної в 1980 році (американське видання - в 1976), зазначається, що, хоча це питання розглядалося ще на зорі застосування обчислювальних машин, в 1952 році, він не втратив актуальності до теперішнього часу. Ставлення до проблеми досить виразно сформульовано в книзі Р. Гласса: "Надійність програмного забезпечення - безпритульне дитя обчислювальної техніки". Слід далі зазначити, що сама проблема надійності програмного забезпечення має, принаймні, два аспекти: забезпечення та оцінка (вимірювання) надійності. Разом з тим очевидно, що надійність програми набагато важливіше таких традиційних її характеристик, як час виконання або необхідний обсяг оперативної пам'яті, проте ніякої загальноприйнятої кількісної міри надійності програм до цих пір не існує.
1. Надійність і сторони надійності інформаційних систем.
Підвищення ефективності функціонування підприємств неможливе без впровадження сучасних методів управління, що базуються на автоматизованих інформаційних системах (АІС) управління підприємствами. Однією з найсерйозніших проблем програмного забезпечення (ПЗ) АІС є його дорожнеча і низька надійність. Багато фахівців вважають, що перший з цих недоліків є продовженням другого. Оскільки програмне забезпечення по самій своїй природі ненадійне, то його тестування і супровід вимагає постійних істотних витрат.
Дамо визначення основних понять надійності ПЗ відповідно до класичної роботи Р. Майерса:
1. У програмному забезпеченні є помилка, якщо воно не виконує того, що користувачеві розумно від нього чекати.
2. Відмова програмного забезпечення - це поява в ньому помилки.
3. Надійність програмного забезпечення – це вірність його роботи без відмов протягом певного періоду часу, розрахованого з урахуванням вартості для користувача кожної відмови.
З даних визначень можна зробити важливі висновки:
Надійність програмного забезпечення є не тільки внутрішньою властивістю програми. Надійність програмного забезпечення - це функція як самого ПЗ, так і очікувань (дій) його користувачів. Надійність - властивість об'єкту зберігати в часі у встановлених межах значення всіх параметрів, що характеризують здатність виконувати необхідні функції в заданих режимах і умовах застосування, технічного обслуговування, ремонтів, зберігання і транспортування. Надійність є однією з найважливіших характеристик якості об'єкту - сукупності властивостей, що визначають придатність його використання за призначенням. Але на відміну від точкових характеристик якості (швидкодія, продуктивність і т.д., які вимірюються для деякого моменту часу), надійність характеризує залежність точкових характеристик якості або від часу використання, або від напрацювання об'єкту, тобто надійність - характеристика тимчасова. Надійність - це складна властивість, що включає простіші властивості об'єкту, які називаються сторонами надійності.
Сторонами надійності є:
1. Безвідмовність - властивість об'єкту безперервно зберігати працездатність протягом деякого часу або деякого напрацювання. Напрацювання - час роботи об'єкту до першої відмови.
2. Ремонтопридатність - властивість об'єкту, що полягає в пристосованості його до попередження і виявлення відмов і відновлення працездатності об'єкту або шляхом проведення ремонту, або шляхом заміни елементів, що відмовили.
3. Довговічність - властивість об'єкту зберігати працездатність до настання граничного стану при встановленому режимі технічного обслуговування і ремонту.
4. Зберігаємість - властивість об'єкту зберігати працездатність протягом і після його зберігання і (або) транспортування.
5. Працездатність - такий стан об'єкту, при якому він здатний виконувати задані функції, задовольняючи вимогам нормативно-технічної документації. Працездатність - це характеристика стану об'єкту в деякий момент часу.
2. Помилки в ПЗ
Помилка - прояв збою або відмови компоненту ІС.
Збій - короткочасне порушення працездатності системи, після якого працездатність відновлюється оператором без проведення ремонту або самовідновлюється.
Відмова - подія, що полягає в тому, що система повністю або частково втрачає властивість працездатності.
2.1 Причини виникнення помилок в ПЗ
Основними причинами помилок програмного забезпечення є:
· Велика складність ПЗ, наприклад, в порівнянні з апаратурою ЕОМ.
· Неправильний переклад інформації з одного представлення в інше на макро і мікрорівнях. На макрорівні, рівні проекту, здійснюється передача і перетворення різних видів інформації між організаціями, підрозділами і конкретними виконавцями на всіх етапах життєвого циклу ПЗ. На мікрорівні, рівні виконавця, проводиться перетворення інформації по схемі: отримати інформацію - запам'ятати - вибрати з пам'яті (пригадати) - відтворити інформацію (передати).
Джерелами помилок (погрозами надійності) програмного забезпечення є:
· Внутрішні: помилки проектування, помилки алгоритмізації, помилки програмування, недостатня якість засобів захисту, помилки в документації.
· Зовнішні: помилки користувачів, збої і відмови апаратури ЕОМ, спотворення інформації в каналах зв'язку, зміни конфігурації системи.
2.2 Класифікація помилок.
Відмови об'єктів можуть класифікуватися за багатьма ознаками, наприклад, за умовами виникнення, зовнішніми проявами, способами виявлення. У табл.1 приведена класифікація відмов за основними ознаками. При аналізі надійності конкретного об'єкту класифікація його відмов дозволяє виявити причини відмов, а отже, знайти шляхи підвищення надійності.
Таблиця 1
Класифікаційна ознака
Значення класифікаційної ознаки
Вид відмови
1 . Характер зміни основних параметрів об'єкту до моменту виникнення відмови
Стрибкоподібна зміна одного або декількох параметрів
Раптова відмова
Поступова зміна одного або декількох основних параметрів
Поступова відмова
2. Взаємозв'язок відмов
Відмова елементу об'єкту не обумовлена пошкодженнями або відмовами інших елементів об'єкту
Независимый отказ элемента
Відмова елементу об'єкту обумовлена пошкодженнями або відмовами інших елементів об'єкту
Залежна відмова елементу
3. Походження відмов
Порушення встановлених правил і (або) норм конструювання, недосконалість прийнятих методів конструювання
Конструкційна відмова
Порушення встановленого процесу виготовлення або ремонту об'єкту, недосконалість технології
Виробнича відмова
Порушення встановлених правил і (або) умов експлуатації об'єкту
Експлуатаційна відмова
4. Стійкість непрацездатного стану (характер відмови)
Непрацездатність зберігається стійко
Стійка відмова
Непрацездатність зберігається короткочасно, після чого працездатністьсамовідновлюється або відновлюється оператором без проведення ремонту
Відмова, що самоусувається (збій)
Непрацездатність одного і того ж характеру виникає і самоусувається багато разів
Переміжна відмова
Слід зазначити, що в загальній масі відмов ЕОМ переважають збої, тобто відмови, що самоусуваються. Хоча збої і розглядаються як відмови, що самоусуваються, для усунення їх впливу на обчислювальний процес, як правило, потрібне вживання спеціальних заходів (введення додаткових програм усунення наслідків збоїв, додаткової апаратури, втручання оператора). Це обумовлено тим, що під час збоїв може бути спотворена частина даних, ЕОМ, що зберігаються в пам'яті.
Детальніше зупинимося на раптових і поступових відмовах.
Раптовій відмові може не передувати поступове накопичення пошкоджень, вона виникає раптово. Причинами раптових відмов електронної апаратури зазвичай є приховані дефекти їх виробництва. В процесі експлуатації можуть створитися умови (пікові навантаження, трясіння, вібрація, температурний стрибок, перешкоди), при яких прихований дефект приводить до відмови елементу.
Поступова відмова виникає в результаті поступового накопичення пошкоджень, головним чином, унаслідок зносу і старіння матеріалів. У наслідку різної природи походження, раптові і поступові відмови підкоряються різним закономірностям, тому повинні бути різні і способи боротьби з ними. Для зменшення числа раптових відмов використовується тренування і припрацювання систем в умовах, близьких до умов експлуатації, з метою виявлення прихованих дефектів виробництва, а також введення захисту від перешкод, перевантажень, вібрації і т.п. Зменшенню числа поступових відмов сприяє своєчасна заміна блоків, що виробили свій технічний ресурс.
Відмови в ІС доцільно розділяти на апаратні і програмні.
Апаратною відмовою прийнято вважати подію, при якій виріб втрачає працездатність і для його відновлення потрібне проведення ремонту апаратури або заміна виробу, що відмовив, на працездатний.
Програмною відмовою вважається подія, при якій об'єкт втрачає працездатність унаслідок недосконалості програми (недосконалість алгоритму рішення задачі, відсутність програмного захисту від збоїв, відсутність програмного контролю за станом виробу і т.д.). Програмна відмова усувається шляхом виправлення програми.
3. Показники надійності.
Основні показники надійності невідновлюваних (неремонтованих) систем. Для невідновлюваних систем, найчастіше, використовуються чотири показники надійності: ймовірність безвідмовної роботи P(t), щільність ймовірності відмов (частота відмов) f(t), інтенсивність відмов л(t), середній час безвідмовної роботи (середнє напрацювання на відмову) T0.
Ймовірність безвідмовної роботи P(t) є ймовірність того, що час роботи системи до відмови опиниться більше заданого часу t: , де Т - випадковий час роботи системи до відмови або напрацювання на відмову, - інтегральна функція розподілу випадкової величини Т (T < t). Іноді користуються поняттям ймовірності відмов Q(t): .
Якщо P(t) - надійність системи, то Q(t) - ненадійність системи.
Щільність ймовірності, або частота відмов, є диференціальною функцією розподілу: . Інтенсивність відмови λ(t) - це відношення щільності ймовірності до ймовірності безвідмовної роботи: , звідки якщо λ = const, Середній час безвідмовної роботи системи - це математичне сподівання часу роботи системи до відмови: Інтегруємо по частинах, отримаємо
На рис.1 зображена залежність ймовірностіі безвідмовної роботи від часу. У початковий момент ймовірність Р рівна одиниці. В кінці часу роботи системи Т ймовірність рівна нулю.
Показники надійності функціонально зв'язані між собою: знаючи одну з функцій P(t), Q(t), f(t), л(t), можна визначити три інші. Статистичні показники надійності невідновлюваних систем, що отримуються з експериментальних даних, можна визначити по наступних формулах: Статистична ймовірністьь безвідмовної роботи , де N - число об'єктів на початку випробувань, ni - число об'єктів, що відмовили за час ti. Під частотою відмовою елементів розуміють число відмов в одиницю часу, поділене на початкову кількусть поставлених на випробування елементів. Статистична частота відмов, де ni - число відмов в інтервалі часу ∆ti, N - число випробовуваних елементів, ∆ti - час випробувань. При цьому елементи, що відмовили в процесі випробувань, не замінюються новими, і число працюючих елементів поступово зменшується. На відміну від частоти відмов, інтенсивність відмов характеризує надійність об'єкту в даний момент часу, тобто його локальну надійність. Під інтенсивністю відмов розуміють число відмов в одиницю часу, поділене на середнє число елементів, що безвідмовно працюють в даний проміжок часу. При цьому елементи, що відмовили, не замінюються.
Інтенсивність відмов: , де ni - число відмов за час ∆ti; - середнє число працездатних елементів, Ni - число елементів, працездатних на початку даного проміжку часу, Ni+1 - число елементів, працездатних в кінці проміжку часу ∆ti. Інтенсивність відмов протягом тривалої експлуатації не залишається постійною. У початковий період часу l має більше значення унаслідок прихованих дефектів, не виявлених із-за недосконалості виробничого контролю і можливих порушень правил експлуатації при первинній наладці об'єкту. Потім значення інтенсивності відмов зменшується і залишається майже постійним протягом тривалого часу. В кінці терміну служби λ зростає із-за старіння елементів пристрою. На рис.2 зображена залежність інтенсивності відмов від часу.
Середній час безвідмовної роботи, або середнє напрацювання на відмову, визначиться за даними випробувань, так , де ti - час справної роботи i-го елементу, N - загальне число випробовуваних елементів.
При великій кількості елементів використовується інший спосіб обчислення середнього часу:
де ni - кількість елементів, що відмовили, в інтервалі часу ∆t = ti+1 - ti, ti - час на початку i-го інтервалу, ti+1 - час в кінцевого інтервалу, - середній час в i-ому інтервалі, - число інтервалів або розрядів, tN - час, протягом якого відмовили всі елементи.
Основні показники надійності відновлюваних (ремонтованих) систем.
Для відновлюваних систем характерне чергування часу справної роботи і часу відновлення (ремонтів). Система, пропрацювавши випадковий час tp1, виходить з ладу. Після відмови відбувається відновлення, і система працює знов час tp2 до відмови. Цей процес продовжується необмежено. Вважаємо, що час відновлення малий в порівнянні з часом роботи. Можна вважати, що відновлення відбувається миттєво. Елемент, що відмовив, зіпсований, негайно замінюється новим. Елемент після відновлення має таку ж надійність, що і в початковий момент. Хай інтервали часу безвідмовної роботи між двома сусідніми відмовами розподілені по експоненціальному закону. Тоді ймовірність того, що за проміжок часу t в системі відбудеться n відмов, визначиться по формулі Пуассона: , (n = 0, 1, 2, 3, …), де λ - середнє число відмов в одиницю часу або інтенсивність відмов, λ = const. λ = Λ, где Λ - параметр потоку відмов. Цей параметр визначається по статистичній формулі: , де N - загальне число елементів, що відмовили, або число відновлень, залишається незмінним. Елементи, що відмовили, замінюються новими. Потік відмов відновлюваної системи є простим, пуассоновськім.
Для ремонтованих об'єктів зручним для практики критерієм надійності є середній час роботи між двома сусідніми відмовами або напрацювання на відмову Т0. Значення цього параметра визначаються за наслідками обробки статистичного матеріалу, отриманого в ході експлуатації або експериментів.
Якщо пристрій пропрацював сумарний час t∑ і мав при цьому n відмов в роботі, то напрацювання на відмову . Якщо випробовувалися N однотипних об'єктів, то необхідно підсумувати час справної роботи по всіх об'єктах і розділити його на загальне число відмов: .
Для простого потоку параметр потік відмов визначаються по формулі: .
4. Показники ремонтопридатності.
Ймовірність відновлення за заданий час - ймовірність того, що час відновлення не перевищить заданого. Час, що витрачається на виявлення і усунення відмов, є випадковим величиною, залежною від ряду чинників: кваліфікації обслуговуючого персоналу, якості вживаних в системі випробувальних програм, повнота контролю і сигналізації і т.п. Закон розподілу часу виявлення і усунення відмов наближається до експоненціального. Середній час відновлення - це математичне очікування часу відновлення працездатності, тобто часу, витраченого на пошук і усунення несправностей. Якщо на відшукання і усунення m відмов було витрачено час , то середній час відновлення об'єкту можна визначити як: .
5. Показники довговічності.
Довговічність системи характеризується її напрацюванням від початку експлуатації до настання граничного стану. Це напрацювання називається технічним ресурсом. Ресурс для кожного об'єкту може бути величиною випадкової. Довговічність ІС і її елементів може оцінюватися наступними показниками:
Середній ресурс - математичне очікування ресурсу.
Гамма-процентний ресурс - час, протягом якого об'єкт не досягає граничного стану із заданою вірогідністю γ відсотків.
Призначений ресурс - встановлене в нормативно-технічній документації сумарне напрацювання, досягнувши якого подальше застосування системи за призначенням слід припинити незалежно від її технічного стану.
6. Показники зберігаємості.
У режимі зберігання і (або) транспортування, так само як і в режимі використання, можуть виникати відмови, тому сохраняємость характеризується показниками, аналогічними показникам безвідмовності: вірогідністю невиникнення відмов протягом заданого часу зберігання (транспортування), середнім часом зберігання повністю, інтенсивністю відмов і параметром потоку відмов при зберіганні. Проте основним в експлуатації системи є застосування, безпосереднє її використання за призначенням, тому особливого значення набуває оцінка впливу зберігання і транспортування на подальшу поведінку об'єкту в робочому режимі. Показники зберігаємості характеризують величину терміну зберігаємості - календарній тривалості зберігання (транспортування) об'єкту в заданих умовах, в течію і після якої зберігаються значення заданих характеристик у встановлених межах.
Середній термін зберігаємості - математичне очікування терміну зберігаємості.
Гамма-процентний термін зберігаємості - термін зберігаємості, який буде досягнутий об'єктом із заданою вірогідністю γ відсотків.
7. Копмлексні показники надійності.
Зазвичай комплексні показники надійності використовуються для сумісної оцінки властивостей безвідмовності і ремонтопрігодності відновлюваних об'єктів.
Коефіцієнт готовності - вірогідність того, що відновлюваний об'єкт виявиться працездатним в довільний момент часу його використання за призначенням: де - сумарний час знаходження об'єкту в працездатному стані, - сумарний час відновлення об'єкту. Ця формула широко застосовується в інженерній практиці. Ступінь її наближення до істиного значення тим більше, чим більше інтервал часу, на якому визначається . Потік відмов і відновлень при цьому стає сталим і набуває стаціонарного характеру. Коефіцієнт готовності, як правило, враховує властивості апаратурної безвідмовності і відновлюваності. Якщо під відмовою розуміти не тільки відмову апаратури, але будь-яка відмова системи у виконанні заданих функцій (зокрема викликаний дефектами програмного забезпечення, зниженням достовірності і т.п.), тоді може виконувати роль комплексного показника надійності ІС, що враховує і інші властивості системи. Тому при використанні коефіцієнта готовності необхідно указувати, які властивості об'єкту він враховує. Коефіцієнт оперативної готовності - вірогідність того, що об'єкт, знаходячись в режимі очікування, виявиться працездатним в довільний момент часу і, починаючи з цього моменту, працюватиме безвідмовно протягом заданого часу: , де - вірогідність безвідмовної роботи на інтервалі заданого часу. Коефіцієнт вимушеного простою - вірогідність того, що об'єкт виявиться непрацездатним в довільний момент часу в проміжках між плановими ремонтами: . Коефіцієнт збереження ефективності - це відношення показника ефективності реального з погляду надійності об'єкту до показника ефективності того ж об'єкту за умови його ідеальної надійності: .
Як показник ефективності може бути прийнята вірогідність безвідмовної роботи ЕОМ (в цьому випадку ) або пропускна спроможність системи масового обслуговування. Достовірність функціонування інформаційної системи - це властивість проводити безпомилково перетворення, зберігання і передачу інформації. Показник достовірності - або вірогідність спотворення, або втрати інформації в одному знаку. Прикладами кількісної оцінки достовірності можуть служити наступні:
• вірогідність помилки при передачі даних по лініях зв'язку складає на один знак;
• вірогідність помилки при зберіганні інформації на машинному носієві складає ;
• вірогідність помилки у вихідних даних АСУ спеціального призначення не повинна перевищувати на один знак.
Відмінними рисами складних систем (АСУ) є: багатоканальность, тобто наявність декількох каналів, кожний з яких виконує певну функцію, часткову по відношенню до загального завдання системи; багатозв'язковість, тобто велика кількість функціональних зв'язків між елементами системи; наявність допоміжних і дублюючих пристроїв.
У зв'язку з перерахованими особливостями складна система може знаходитися в декількох працездатних станах, оскільки вихід з ладу деяких її елементів не викликає повної відмови системи, тобто припинення нею заданих функцій, але погіршує в тому або іншому ступені якість функціонування. Отже, відмова елементу переводить систему із стану з повною працездатністю в стан з частковою працездатністю.
Інформаційну систему можна характеризувати функціональною і ефективною надійністю.
Функціональна надійність - вірогідність того, що система задовільно виконуватиме свої функції протягом заданого часу. Функціональна надійність відрізняється від визначення надійності, даного у введенні, тим, що враховує наявність в системі додаткових схем контролю.
Ефективна надійність - середнє значення (математичне сподывання) величини, що характеризує об'єм і корисність виконуваних системою функцій протягом заданого часу в порівнянні з її граничними можливостями. Введення поняття ефективної надійності обумовлене тим, що окремими показниками надійності не вдається оцінити функціонування складної системи. Складна система окрім надійності кожного блоку і всієї системи характеризується ще відносною важливістю втрати тих або інших якостей. Тому під розуміється деяка кількісна міра, що оцінює якість виконання системою своїх функцій. У ряді випадків виконання конкретного приватного завдання з деякою ефективністю вимагає працездатності лише частини апаратури. З іншого боку, навіть при повній працездатності всіх блоків системи не можна говорити про виконання деякого завдання як про достовірну подію. Основна ідея визначення ефективної надійності полягає в тому, що враховують не тільки внутрішні властивості системи, але і якість її функціонування і виконання завдання.
8. Побудова надійних систем з ненадійних компонентів.
Порівнюючи особливості функціонування природних і штучних автоматів, фон Нейман звернув увагу на те, що живі автомати і, зокрема, людський мозок працюють з незбагненною надійністю, не дивлячись на порівняно низьку надійність їх деталей. Чи можна змоделювати цю особливість живих організмів за допомогою штучних автоматів? Чи можна, і якщо можна, то як побудувати надійний автомат з ненадійних компонент? Чи можна знизити поріг помилки до заданого значення? Ці питання були розібрані в статті фон Неймана «Імовірнісна логіка і синтез надійних організмів з ненадійних компонент», написаною на основі п'яти лекцій, прочитаних в січні 1952 р. в Каліфорнійському технологічному інституті.
«Як показує заголовок, - підкреслює фон Нейман у введенні, - основним предметом статті є роль помилки в логіці і у фізичному знарядді логіки - синтезі автоматів. Тому помилка розглядається не як виняткова подія, результат або причина якоїсь неправильності, але як істотна частина даного процесу. Значення поняття помилки в синтезі автоматів цілком порівнянно із значенням чинника правильної логічної структури, яка є на увазі, що зазвичай враховується.
Пропоноване трактування помилки є незадовільним і дається лише для певної ситуації. На переконання автора, якого він дотримується вже багато років, помилку слід розглядати за допомогою термодинамічних методів, так само, як це робиться з інформацією в роботах Л. Сциларда і До. Шеннона».
По фон Нейману, кожну компоненту допустимо розглядати як чорний ящик з певним числом входів і виходів. Якби сигнал на виході був функцією сигналів на вході, то ми мали б надійну компоненту, таку, що спрацьовує з вірогідністю 1. Якщо ж сигнал на виході при заданих сигналах на вході виникає з вірогідністю менше 1, то компоненту ненадійна. Чи можна, маючи в своєму розпорядженні необмежений запас ненадійних компонент, побудувати надійний варіант будь-якого заданого автомата?
Фон Нейман вирішує цю задачу двома способами. Перше рішення (автомати з простими лініями) дозволяє знижувати вірогідність помилки лише до деякого рівня. Суть рішення полягає в побудові з трьох ненадійних однакових ліній і змішувачів, що проводять порівняння сигналів на виходах підключених до них компонент, надійнішої системи, що виконує ту ж функцію.
Друге рішення фон Нейман називає трюком з кратними лініями. Двійковий вихід машини замінюється пучком з багато разів повтореного двійкового виходу, і значення сигналу на виході визначається «більшістю голосів» - значенням сигналу на більшій частині ліній в пучку. Схема ідеального автомата, побудованого з надійних компонент, перетвориться: кожна лінія замінюється пучком ліній, а кожен орган - аналогом, що проводить операції з вихідним сигналом більшості ліній. Фон Нейман приводить оцінки надмірності для другої схеми. Виявляється, що при заміні органу, що не спрацьовує з вірогідністю 1/200, при надмірності 60 000 на одиницю рівень помилки знижується до 10–20. Це означає, що автомат, порівнянний по складності і швидкодії з людським мозком, міг би сторіччями працювати без збоїв.
9. Методи проектування надійного програмного забезпечення.
Методи проектування надійного програмного забезпечення можна розбити на наступні групи:
· Попередження помилок, методи дозволяють мінімізувати або виключити появу помилки.
· Виявлення помилок, методи направлені на розробку додаткових функцій програмного забезпечення, що допомагають виявити помилки.
· Стійкість до помилок, додаткові функції програмного забезпечення, призначені для виправлення помилок і їх наслідків і системи, що забезпечують функціонування, за наявності помилок.
Методи попередження помилок концентруються на окремих етапах процесу проектування програмного забезпечення і включають:
· Методи, системи, що дозволяють справитися з складністю.
· Методи досягнення більшої точності при перекладі інформації.
· Методи поліпшення обміну інформацією.
· Методи негайного виявлення і усунення помилок на кожному кроці (етапі) проектування, не відкладаючи їх на етап тестування програми.
Складність системи є однією з головних причин низької надійності програмного забезпечення. У загальному випадку, складність об'єкту є функцією взаємодії (кількості зв'язків) між його компонентами. У боротьбі з складністю ПЗ використовуються дві концепції:
· Ієрархічна структура. Ієрархія дозволяє розбити систему по рівнях розуміння (абстракції, управління). Концепція рівнів дозволяє аналізувати систему, приховуючи неістотні для даного рівня деталі реалізації інших рівнів. Ієрархія дозволяє розуміти, проектувати і описувати складні системи.
· Незалежність. Відповідно до цієї концепції, для мінімізації складності, необхідно максимально підсилити незалежність елементів системи.
Це означає таку декомпозицію системи, щоб її високочастотна динаміка була поміщена в окремих компонентах, а міжкомпонентні взаємодії (зв'язки) описували тільки низькочастотну динаміку системи. Методи виявлення помилок базуються на введенні в програмне забезпечення системи різних видів надмірності:
· Тимчасова надмірність. Використання частини продуктивності ЕОМ для контролю виконання і відновлення працездатності ПЗ після збою.
· Інформаційна надмірність. Дублювання частини даних інформаційної системи для забезпечення надійності і контролю достовірності даних.
· Програмна надмірність включає: взаємне недовір'я - компоненти системи проектуються, виходячи з припущення, що інші компоненти і початкові дані містять помилки, і повинні намагатися їх виявити; негайне виявлення і реєстрацію помилок; виконання однакових функцій різними модулями системи і зіставлення результатів обробки; контроль і відновлення даних з використанням інших видів надмірності.
Методи забезпечення стійкості до помилок направлені на мінімізацію збитку, викликаного появою помилок, і включають:
· обробку збоїв апаратури;
· повторне виконання операцій;
· динамічна зміна конфігурації;
· скорочене обслуговування у разі відмови окремих функцій системи;
· копіювання і відновлення даних;
· ізоляцію помилок.
Важливим етапом життєвого циклу програмного забезпечення, що визначає якість і надійність системи, є тестування. Тестування - процес виконання програм з наміром знайти помилки. Етапи тестування:
· Автономне тестування, контроль окремого програмного модуля окремо від інших модулів системи.
· Тестування сполучень, контроль сполучень (зв'язків) між частинами системи (модулями, компонентами, підсистемами).
· Тестування функцій, контроль виконання системою функцій, що автоматизуються.
· Комплексне тестування, перевірка відповідності системи вимогам користувачів.
· Тестування повноти і коректності документації, виконання програми в строгій відповідності з інструкціями.
· Тестування конфігурацій, перевірка кожного конкретного варіанту постачання (установки) системи.
Існують дві стратегії при проектуванні тестів: тестування по відношенню до специфікацій (документація), не піклуючись про текст програми, і тестування по відношенню до тексту програми, не піклуючись про специфікації. Розумний компроміс лежить десь посередині, зміщуючись в ту або іншу сторону залежно від функцій, що виконуються конкретним модулем, комплексом або підсистемою.
Якість підготовки початкових даних для проведення тестування серйозно впливає на ефективність процесу в цілому і включає:
· технічне завдання;
· опис системи;
· керівництво користувача;
· початковий текст;
· правила побудови (стандарти) програм і інтерфейсів;
· критерії якості тестування;
· еталонні значення початкових і результуючих даних;
· виділені ресурси, визначувані доступними фінансовими коштами.
Проте, вичерпне тестування всіх віток алгоритму будь-якої серйозної програми для всіх варіантів вхідних даних практично нездійсненно. Отже, тривалість етапу тестування є питанням чисто економічним. Враховуючи, що реальні ресурси будь-якого проекту обмежені бюджетом і графіком, можна стверджувати, що мистецтво тестування полягає у відборі тестів з максимальною віддачею.
Помилки в програмах і даних можуть виявитися на будь-якій стадії тестування, а також в період експлуатації системи. Зареєстровані і оброблені відомості повинні використовуватися для виявлення відхилень від вимог замовника або технічного завдання. Для вирішення цього завдання використовується система конфігураційного управління версіями програмних компонент, база документування тестів, результатів тестування і виконаних коректувань програм. Засоби накопичення повідомлень про відмови, помилки, пропозиції на зміни, виконані коректування і характеристики версій є основними для управління розвитком і супроводом комплексу ПЗ і складаються з журналів:
· пропонованих змін;
· знайдених дефектів;
· затверджених коректувань;
· реалізованих змін;
· призначених для користувача версій.
Попередження помилок - кращий шлях підвищення надійності програмного забезпечення. Для його реалізації була розроблена методика проектування систем управління підприємствами, відповідна спіральній моделі життєвого циклу ПЗ. Методика передбачає послідовне пониження складності на всіх етапах аналізу об'єкту. При декомпозиції АЇС були виділені рівні управління системи, потім підсистеми, комплекси завдань і так далі, аж до окремих функцій, що автоматизуються, і процедур. Методика базується на методах структурно-функціонального аналізу (SADT), діаграмах потоків даних (DFD), діаграмах "суть-зв'язок (ERD) ", методах об'єктно-орієнтованого аналізу (OOA) і проектування (OOD).
На підставі методів виявлення помилок були розроблені наступні засоби підвищення надійності ПЗ.
Засоби використовують тимчасову надмірність: авторизація доступу користувачів до системи, аналіз доступних користувачеві ресурсів, виділення ресурсів згідно ролям і рівням підготовки користувачів, розмежування прав доступу користувачів до окремих завдань, функцій управління, записів і полів баз даних.
Засоби забезпечення надійності, що використовують інформаційну надмірність: посилальна цілісність баз даних забезпечується за рахунок системи внутрішніх унікальних ключів для всіх інформаційних записів системи, відкрита система кодування, що дозволяє користувачеві у будь-який момент змінювати коди будь-яких об'єктів класифікації, забезпечує стиковку системи класифікації АЇС з ПЗ інших розробників, механізми перевірки значень контрольних сум записів системи, забезпечують виявлення всіх несанкціонованих модифікацій (помилок, збоїв) інформації, засоби реєстрації забезпечують зберігання інформації про користувача і час останньої модифікації (введення, редагування, видалення) і затвердження кожного запису інформаційної системи, введення в структури баз даних системи часу почала і закінчення участі запису в розрахунках дозволяє обмежити об'єм оброблюваної інформації на будь-якому заданому періоді, а також забезпечити механізми блокування інформації для закритих робочих перекладів, ведення службових полів номерів версій баз даних і операційних ознак записів дозволяє контролювати і попереджати користувачів про конфлікти у разі невідповідності номерів версій модулів і структур баз, або про порушення технологічних етапів обробки інформації, засоби автоматичного резервного копіювання і відновлення даних (на початку, кінці сеансу роботи або по запиту користувачів) забезпечують створення на робочій станції клієнта актуальної копії мережевої бази даних, яка може бути використана у разі аварійного збою апаратури локальної і обчислювальної мережі і переходу на локальний режим роботи і назад.
Засоби забезпечення надійності, що використовують програмну надмірність: розподіл реалізації однойменних функцій по різних модулях АІС з використанням різних алгоритмів і системи обмежень, що накладаються, і можливістю порівняння отриманих результатів; спеціальні алгоритми перерахунків забезпечують в ручному і автоматичному режимах переформовування груп документів, ланцюжків породжуваних документів і бухгалтерських проводок, що підвищує ефективність і надійність обробки інформації; засоби виявлення і реєстрації помилок в мережевому і локальних протоколах; у програмні модулі системи вбудовані засоби протоколювання процесів складних розрахунків з видачею докладної діагностики помилок; засоби відладки і трасування алгоритмів призначених для користувача бізнес-функций.
Засоби системи, що забезпечують стійкість, до помилок: процедура обробки збоїв забезпечує в автоматичному режимі декілька спроб повторного виконання операцій перш, ніж видати користувачеві повідомлення про помилку (наприклад, для операцій роздільного доступу до ресурсів, операцій блокування інформації або звернення до зовнішніх пристроїв); засоби динамічної зміни конфігурації здійснюють контроль доступу до мережевих ресурсів, а у разі їх недоступності або конфлікту забезпечують автоматичний запуск системи по альтернативних шляхах доступу; засоби контролю і обслуговування даних забезпечують відновлення заголовків баз даних, відновлення індексних файлів, конвертацію модифікованих структур баз даних; засоби злиття, копіювання, архівації і відновлення даних.
Висновки
1. Показники надійності складного об'єкту типу АСУ або ІС мають характер системи показників. Чим більше число показників надійності системи визначається при аналізі її надійності, тим більше докладним стає цей аналіз. Разом з тим перелік використовуваних показників надійності повинен бути не просто максимально повним, але і доцільним, тобто що відповідає завданню об'єктивній характеристиці необхідних властивостей об'єкту.
2. У системі показників надійності необхідно виділяти основні і допоміжні. Для об'єктів, складних по своїй структурі, багатофункціональних по вирішуваних задачах, використовуваних в різних робочих режимах, до основних показників надійності відносяться комплексні показники надійності.
3. Кількісні значення показників надійності слід задавати з урахуванням двох суперечливих вимог: з одного боку показник надійності повинен бути не нижче за рівень, що забезпечує необхідну ефективність, з іншого боку, він не повинен перевищувати рівня, який може бути забезпечений можливостями виробництва.
Завдання проектування системи полягає в тому, щоб вибором принципової схеми, алгоритму і засобів забезпечення надійності виконати ці дві суперечливі вимоги. Для цього необхідний всесторонній аналіз можливих варіантів рішення поставленої задачі із залученням моделювання і чисельних методів розрахунку.
4. Подальше вдосконалення показників надійності сучасних складних систем продовжує залишатися актуальним завданням. Найважливішими напрямами вдосконалення є впровадження показників надійності, що враховують індивідуальну надійність конкретних об'єктів; показників надійності, що враховують вплив надійності на ефективність, вплив програмного забезпечення, людського чинника, живучості і достовірності.
Список використаної літератури
1. Надёжность автоматизированных систем управления./ Под редакцией Я.А.
Хетагурова.
2. Голинкевич Т.А. Прикладная теория надёжности.
3. Шураков В.В. Надёжность программного обеспечения систем обработки дан-ных.
4. Тейер Т., Липов М., Нельсон Э. Надёжность программного обеспечения.
5. Майерс Г. Надёжность программного обеспечения.
6. http://www.osp.ru/os/1994/04/178540/
7. http://sir35.ru/Cmagin/Nade_29072.htm