Відмінності між версіями «Reliability»

Матеріал з Wiki Welard
Перейти до навігації Перейти до пошуку
Рядок 102: Рядок 102:
  
 
Загалом моделі недосконалою відлагодження будуються на основі таких припущень:
 
Загалом моделі недосконалою відлагодження будуються на основі таких припущень:
−
1) коефіцієнт виявлення відмов відрізняється між відмовами;
+
# 1) коефіцієнт виявлення відмов відрізняється між відмовами;
−
2) кожного разу, як виникає відмова ПЗ, помилка в ПЗ, яка спричиняє цю відмову, виправляється, і нові помилки можуть бути внесені в систему
+
# 2) кожного разу, як виникає відмова ПЗ, помилка в ПЗ, яка спричиняє цю відмову, виправляється, і нові помилки можуть бути внесені в систему

Версія за 14:06, 8 вересня 2022

Моделі надійності програмного забезпечення.

Вартість розроблення програмного забезпечення (ПЗ) та витрати на відмови програмних систем - є одними із основних затрат на розроблення складних технічних систем.

Відмова ПЗ може призвести до неочікуваного стану системи або потоку непередбачених дій. Внаслідок відмови ПЗ можливі пошкодження чи руйнування майна, поранення або загибель людей, втрата грошових коштів.


Загальновизнаним в індустрії програмного забезпечення є той факт, що висококваліфіковані програмісти допускають в середньому 6 помилок в програмному забезпеченні при написанні 1000 рядків коду. При такому показнику звичайне комерційне ПЗ, яке складається з 350000 рядків коду, містить близько 2000 помилок, зокрема помилки, пов’язані з витоком пам’яті, пов’язані з текстом програми, помилки використання сторонніх бібліотек, стандартні бібліотечні помилки та інші. Тому питання оцінювання та забезпечення надійності ПЗ відіграють все більшу роль у розробленні складних технічних систем, а побудова все адекватніших моделей надійності ПЗ є важливою науково-технічною проблемою.


Загальна характеристика та класифікація моделей надійності програмного забезпечення.

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


Як основні критерії класифікації таких моделей вибрано два предмети дослідження:

дослідження кількості відмов за певний період часу

(вимір часу “в режимі настінного годинника”

або вимір часу відносно виконання процесів пристроями комп’ютера)

дослідження часових проміжків між помилками


До найбільш вживаних методик і факторів надійності ПЗ належать: стадія життєвого циклу розроблення ПЗ (класифікація моделей залежить від етапу, на якому розраховується надійність ПЗ), можливість раннього прогнозування помилок, орієнтованість на інформацію або архітектуру (класифікацію роблять на підставі перевірки правильності вхідних / вихідних даних, або перевірки функціонального наповнення ПЗ), зростання надійності ПЗ в процесі виявлення та виправлення помилок тощо.

Класифікація за такими факторами є найповнішою та дає можливість представити не тільки самі моделі, але і взаємозв’язок між ними (рис. 1).


Кількість моделей надійності ПЗ сьогодні перевищує сотню і продовжує зростати.

Залежно від визначення поняття надійності ПЗ і глибини дослідження обирають різні критерії і характеристики моделей надійності. Тому наведена на рис. 1 схема класифікації моделей надійності ПЗ, як і розглянуті критерії, не є єдиною.


1000*750px


Схема, наведена на рис. 1, поділяє всі моделі надійності ПЗ на аналітичні та емпіричні.

  • Емпіричні моделі надійності, своєю чергою, поділяються на
    * моделі складності 
    * і моделі, що визначають час, необхідний на “доведення” програми. 
  • Аналітичні моделі надійності ПЗ поділяють
    * на динамічні (дискретні і неперервні) 
    * і статичні (за областю помилок, за областю даних).


На ранніх стадіях життєвого циклу ПЗ потрібна модель прогнозування надійності, оскільки даних про відмови немає.

Моделі такого типу призначені для передбачення кількості помилок у програмі перед тестуванням, і належать до детерміністичних (статичних) моделей надійності ПЗ.

На етапі тестування показники надійності ПЗ покращуються завдяки відлагодженню програми. Модель зростання надійності на цьому етапі потрібна для оцінювання поточного рівня надійності, часу і ресурсів, потрібних для досягнення заданого рівня надійності ПЗ. Впродовж цього етапу оцінка надійності ґрунтується на аналізі цих відмов. Моделі такого типу належать до імовірнісних (динамічних) моделей надійності ПЗ. Після введення програми в експлуатацію при визначенні її надійності необхідно враховувати додавання нових модулів, усунення старих модулів, усунення виявлених помилок, поєднання нового коду з попередньо написаним кодом, зміну середовища користувача, зміну апаратного забезпечення тощо. На цьому етапі використовують еволюційні моделі надійності.


За моделями, в основу яких покладено підрахунок відмов (динамічні моделі), припускають, що концептуально в програмі наявна скінченна кількість помилок. Враховуючи, що кількість помилок є цілим числом, за динамічними моделями обчислюють кількість початкових помилок на етапі відлагодження програми і кількість помилок, що залишились під час чи в кінці етапу відлагодження


Програмне забезпечення, яке містить помилки і випускається на ринок, несе високі ризики, пов’язані з відмовами. Відлагодження і тестування, з іншого боку, зменшує кількість помилок, але збільшує витрати на розроблення. Отже, існує необхідність визначити оптимальний час для зупинки тестування ПЗ. Під час тестування системи надійність є важливим критерієм при ухваленні рішення, коли саме потрібно випустити ПЗ. Декілька інших критеріїв, такі як кількість помилок, що залишилися, частота відмов, вимоги до надійності або загальна вартість системи можуть бути використані для визначення оптимального часу тестування ПЗ.


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


Модель Гоеля–Окумото також відома як експоненційна модель зростання надійності ПЗ, що ґрунтується на неоднорідному процесі Пуассона. Ця модель ґрунтується на таких припущеннях:

  1. усі відмови в програмі є незалежними;
  2. кількість відмов, виявлених у будь-який час, пропорційна поточній кількості помилок у програмі; це означає, що ймовірність виявлення кожної помилки є сталою величиною;
  3. виявлені відмови видаляються до наступного тестування;
  4. кожного разу, як відбувається відмова ПЗ, помилка, яка спричинила цю відмову, негайно виправляється, і жодних нових помилок до системи не вноситься.


Муса у 1985 році, розглядаючи взаємозв’язки між часом виконання та календарним часом, запропонував модель, подібну до моделі Гоеля–Окумото.


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


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


Ще одним типом моделей надійності ПЗ на основі неоднорідного процесу Пуассона є S-подібні моделі. В цих моделях крива зростання надійності є S-подібною. Це означає, що крива перетинає експоненційну криву знизу, і перетинає лише один раз. Коефіцієнт виявлення відмов, який залежить від часу, є найбільшим у той час, коли тестування почалось, після чого він спадає експоненційно. Інакше кажучи, деякі помилки є екрановані іншими помилками на початку фази тестування, і поки ці помилки не виправляться, приховані помилки так і залишаться невиявленими.


Ямада також зазначив, що процес тестування програмного забезпечення часто містить процес навчання, під час якого тестувальники ознайомлюються з ПЗ, середовищами та вимогами до програмної системи. S-подібні моделі у вигляді неоднорідного процесу Пуассона ґрунтуються на таких припущеннях: 1) коефіцієнт виявлення відмов відрізняється між відмовами; 2) кожного разу, як виникає відмова, помилка в програмному забезпеченні, яка спричинила відмову, негайно видаляється, і нові помилки в систему не вносяться.


Моделі надійності програмного забезпечення з урахуванням недосконалого відлагодження.

В основу більшості вищеописаних моделей надійності ПЗ покладено припущення про ідеальне відлагодження, коли під час процесу тестування виявляється відмова ПЗ, знаходиться відповідна помилка та виправляється, але при цьому нові помилки не вносяться. Однак, це припущення є спрощенням реального процесу розроблення програмних систем, оскільки в процесі розроблення не завжди вдається видалити помилку із системи, під час видалення однієї помилки можуть бути внесені інші, відмова може бути викликана кількома взаємопов’язаними помилками тощо.

Загалом моделі недосконалою відлагодження будуються на основі таких припущень:

  1. 1) коефіцієнт виявлення відмов відрізняється між відмовами;
  2. 2) кожного разу, як виникає відмова ПЗ, помилка в ПЗ, яка спричиняє цю відмову, виправляється, і нові помилки можуть бути внесені в систему