ТЕМА 9
МОДЕЛІ ЯКОСТІ ТА НАДІЙНОСТІ ПРОГРАМНИХ СИСТЕМ
Розробка ПС досягло такого рівня розвитку, що виникла необхідність
використання інженерних методів оцінювання результатів проектування на процесах
ЖЦ, ризику й ступеня використання готових компонентів для зниження вартості
розробки нового проекту та метричного аналізу й контролю досягнутих показників
якості. Основою інженерних методів у програмуванні є підвищення якості. Для
досягнення цього були сформульовані методи визначення вимог до якості, підходи
до вибору й удосконалення моделей метричного аналізу показників якості, методи
кількісного виміру ризиків на процесах ЖЦ.
Головна складова якості – надійність, якій приділяється велика увага у сфері надійності технічних засобів і
тих критичних систем (реальний час, радарні системи, системи безпеки й ін.),
для яких надійність є головною цільовою функцією оцінки їхньої реалізації. Як
наслідок у проблематиці надійності розроблено понад сотні математичних моделей
надійності, що є функціями помилок, які залишилися в ПС, інтенсивності відмов
або частоти виникнення дефектів у ПС. На їхній основі здійснюється оцінка
надійності ПС.
Якість ПС – предмет стандартизації. У стандарті ДСТУ 2844–94 наведено
визначення якості
ПС як сукупності властивостей (показників якості) ПС, що забезпечують його здатність задовольняти потреби
замовника відповідно до призначення. Цей стандарт регламентує базову модель
якості й показники, головним серед яких є надійність. Стандарт ISO/IEC 12207
визначає не тільки основні процеси ЖЦ розробки ПС, а й організаційні та
додаткові процеси, які регламентують інженерію, планування й керування якістю
ПС.
Відповідно до стандарту на процесах ЖЦ повинен здійснюватися контроль
якості ПС:
– перевірка відповідності вимог до проектованого продукту та критеріїв
їхнього досягнення;
– верифікація й атестація (валідація) проміжних результатів ПС на
процесах ЖЦ і вимірювання ступеня відповідно до певних показників, які
досягаються;
– тестування готової ПС, збирання даних про відмови, дефекти й інші
помилки, які виявлено у системі;
– підбір моделей надійності для оцінювання надійності за отриманими
результатами тестування (дефекти, відмови й ін.);
– оцінка показників якості, заданих у вимогах до розробки ПС. Моделі
якості й надійності, а також способи їхнього застосування при розробленні
систем, будуть розглядатися нижче.
9.1. Модель якості програмних систем
Якість ПС – це відносне поняття, що має сенс тільки з урахуванням
реальних умов його застосування, тому вимоги до якості висуваються відповідно
до умов та конкретної сфери їхнього використання. Якість характеризується
трьома аспектами: якість програмного продукту, якість процесів ЖЦ й якість
супроводу або впровадження (рис. 9.1).
Рис. 9.1.
Основні аспекти якості ПС
Аспект, пов’язаний із процесами ЖЦ, визначає ступінь формалізації,
вірогідності процесів ЖЦ з розробки ПС, а також верифікацію й валідацію
проміжних і кінцевих результатів на цих процесах. Пошук й усунення помилок у
готовому ПС проводиться за допомогою методів тестування, які зменшують
кількість помилок і підвищують якість цього продукту.
Якість продукту досягається процедурами контролю проміжних продуктів під
час процесів ЖЦ, перевіркою їх на досягнення необхідної якості, а також
методами супроводу продукту. Ефект від впровадження ПС великою мірою залежить
від знань обслуговуючого персоналу функцій продукту й правил їхнього виконання.
Модель якості програмного забезпечення (рис. 9.2) має чотири рівні
подання.
Перший рівень подання відповідає визначенню характеристик
(показників) якості ПС, кожна з яких відображає окреме уявлення користувача про
якість. Відповідно до стандарту [1–4] у модель якості входить шість
характеристик або шість показників якості:
1) функціональність (functionality);
2) надійність (realibility);
3) зручність (usability);
4) ефективність (efficiency);
5) супровід (maitainnability);
6) мобільність (portability).
Другому рівню подання відповідають атрибути для кожної
характеристики якості, які деталізують різні аспекти конкретної характеристики.
Набір атрибутів характеристик якості використовується для оцінки якості.
Третій рівень подання призначено для виміру якості за допомогою
метрик, кожна з яких відповідно до стандарту [1] визначається як комбінація
методу виміру атрибута й шкали виміру значень атрибутів. Для оцінки атрибутів
якості на процесах ЖЦ (при перегляді документації, програм і результатів
тестування програм) використовуються метрики із заданою цінною вагою для
нівелювання результатів метричного аналізу сукупних атрибутів конкретного
показника і якості в цілому. Атрибут якості визначається за допомогою однієї
або декількох методик оцінки на процесах ЖЦ і на завершальному процесі розробки
ПС.
Четвертий рівень подання – це оцінний елемент метрики (вага), що
використовується для оцінки кількісного або якісного значення окремого атрибута
показника ПС. Залежно від призначення, особливостей та умов супроводу
вибираються найважливі характеристики якості та їхні атрибути.
Вибрані атрибути та їхні пріоритети відображаються у вимогах на розробку
систем або використовуються відповідні пріоритети еталона класу ПС, до якого це
ПС належить.
9.1.1. Стандартні показники якості
Короткий опис семантики характеристик моделі якості наведено в табл. 9.1, а їхній змістовний
опис – нижче.
*Таблиця 9.1 – Коротка характеристика показників якості
Показник |
Опис
властивостей показника |
Функціональність |
Група властивостей ПС, що обумовлює його здатність виконувати певний
перелік функцій, які задовольняють потреби відповідно до призначення |
Надійність |
Група властивостей, що обумовлює здатність ПС зберігати працездатність
і перетворювати вихідні дані на результат за встановлений період часу,
характер відмов якого є наслідком внутрішніх дефектів й умов його
застосування |
Зручність застосування |
Сукупність властивостей ПС для передбачуваного кола користувачів й
освоєння, що характеризують його простоту і адаптації до умов, що змінюються,
експлуатації, стабільність роботи й підготовки даних, зрозумілість
результатів, зручності внесення змін у програмну документацію й програми |
Супровід |
Група властивостей, що визначає зусилля, необхідні для виконання,
пристосовність до діагностики відмов і наслідків внесення змін, модифікації й
атестації ПС, що модифікується |
Раціональність |
Група властивостей, що характеризується ступенем відповідності
використовуваних ресурсів середовища до функціонування рівня якості
(надійності), функціонування ПС за заданих умов застосування |
Переносність |
Група властивостей ПС, що
забезпечує його пристосовність для перенесення з одного середовища
функціонування в інші, зусилля для перенесення й адаптації ПС до нового
середовища функціонування |
Рис. 9.2.
Модель характеристик
якості
1. Функціональність – сукупність властивостей, що визначають здатність
ПС виконувати перелік функцій у певному середовищі відповідно до вимог щодо
обробки й загальносистемних засобів.
Функція розглядається як певна впорядкована послідовність дій для задоволення
споживацьких нахилів. Функції бувають цільові (основні) і допоміжні.
До атрибутів функціональності належать:
– функціональна повнота – властивість компонента, що визначає
ступінь достатності основних функцій для розв’язання задач відповідно до
призначення ПС;
– правильність (точність) – атрибут, що визначає ступінь досягнення
правильних результатів;
– інтероперабельність – атрибут, що визначає можливість впливати на
ПС спеціальними системами й середовищами (ОС, мережа);
– захищеність – атрибут, що вказує на здатність ПС запобігати
несанкціонованому доступу (випадковий або навмисний) до програм і даних.
2. Надійність – сукупність атрибутів, які визначають здатність ПС
перетворювати вихідні дані на результати за умов, що залежать від періоду часу
життя (зношування і старіння не враховуються). Зниження надійності ПС
відбувається через помилки у вимогах, проектуванні й виконанні. Відмови й
помилки в програмах з’являються на визначеному проміжку часу [5–10].
До атрибутів надійності ПС належать:
– безвідмовність – атрибут, що визначає здатність ПС функціонувати
без відмов (як програми, так й обладнання);
– стійкість до помилок – атрибут, що вказує на здатність ПС
виконувати функції за аномальних умов (збій апаратур, помилки в даних й
інтерфейсах, порушення в діях оператора й ін.);
– відновлюваність – атрибут, що вказує на здатність програми до
перезапуску для повторного виконання й відновлення даних після відмов.
До певних типів систем (реального часу, радарних, систем безпеки,
комунікація й ін.) висуваються вимоги щодо забезпечення високої надійності
(неприпустимість помилок, точність, вірогідність, зручність застосування й
ін.). Таким чином, надійність ПС значною мірою залежить від кількості не
усунутих помилок у процесі розробки продукта на процесах ЖЦ. Під час
експлуатації помилки виявляються й усуваються.
Якщо при виправленні помилок не вносяться нові або, принаймні, нових
помилок вноситься менше, ніж усувається, то і в процесі експлуатації надійність
ПС зростає. Чим інтенсивніший процес експлуатації, тим інтенсивніше виявляються
помилки й швидше зростає надійність ПС.
До чинників, що впливають на надійність ПС, належать:
– сукупність загроз, що призводять до несприятливих наслідків і
збитків системи або середовища її функціонування;
– загроза як виявлення порушення безпеки системи;
– цілісність як здатність системи зберігати стійкість роботи без
ризику.
Виявлені помилки можуть бути результатом загрози ззовні або відмов, вони
підвищують ризик і зменшують деякі властивості надійності системи.
Надійність – одна з ключових проблем сучасних програмних систем, і її
роль буде постійно зростати, оскільки постійно підвищуються вимоги до якості
комп’ютерних систем. Новий напрямок – інженерія програмної надійності (Software
reliability engineering) – орієнтується на кількісне вивчення операційної
поведінки компонентів системи відносно користувача, який очікує надійну роботу системи
[7]. Він складається з:
– вимірювання надійності, тобто проведення її кількісної оцінки за
допомогою передбачень, збирання даних про поведінку системи в процесі
експлуатації й сучасних моделей надійності;
– стратегії й метрики конструювання й вибору готових компонентів,
процес розробки компонентної системи, а також середовище функціонування, що
впливає на надійність роботи системи;
– застосування сучасних методів інспектування, верифікації,
валідації й тестування під час розробки систем та їх експлуатації.
Верифікація застосовується для встановлення відповідності готового ПС до
визначених специфікацій, а валідація – для встановлення відповідності системи
до вимог користувача, висунутих замовником.
Із сказаного слідує, що оцінка надійності ПС – це трудомісткий процес,
що вимагає створення сталої роботи системи щодо помилок ПС, тобто ймовірності
того, що система відновиться довільно в певній точці після виникнення і
внесення змін через відмови і інші ситуації.
3. Зручність застосування характеризується множиною атрибутів, які вказують
на необхідні й достатні умови використання (діалогове або не діалогове) ПС
певним колом користувачів для отримання відповідних результатів. У стандарті
[3] визначено зручність застосування як специфічну множину атрибутів
програмного продукту, що характеризують його ергономічність.
До атрибутів зручності застосування належать:
– зрозумілість – атрибут, що визначає зусилля, витрачені на
розпізнавання логічних концепцій та умов застосування ПС;
– легкість вивчення – атрибут, що визначає зусилля користувачів,
спрямовані на визначення застосування ПС шляхом використання операційного
контролю, діагностики, а також процедур, правил і документації;
– оперативність – атрибут, що вказує на реакцію системи під час
виконання операцій й операційного контролю;
– погодженість – атрибут, що визначає відповідність розробки
вимогам стандартів, угод, правил, законів і розпоряджень.
4. Ефективність – множина атрибутів, які визначають взаємозв’язок рівнів виконання ПС,
використання ресурсів (засоби, апаратура, матеріали – папір для друкувального
пристрою та ін.) і послуг, що виконуються штатним обслуговуючим персоналом та
ін.
До характеристик ефективності ПС належать:
– реактивність – атрибут, що вказує на час отклику, обробки й
виконання функцій; ефективність ресурсів – атрибут, що визначає
кількість і тривалість використовуваних ресурсів при виконанні функцій ПС;
– погодженість – атрибут, що вказує на відповідність даного
атрибута заданим стандартам, правилам та приписам.
5. Супровід – множина властивостей, які вказують на зусилля, що треба витратити для
здійснення модифікацій, що містить у собі корегування, удосконалення й
адаптацію ПС при зміні середовища, вимог або функціональних специфікацій.
Супровід містить у собі такі атрибути:
– простота аналізу – атрибут, що визначає необхідні зусилля для
діагностики відмов або ідентифікації частин, які будуть модифікуватися;
– змінюваність – атрибут, що визначає видалення помилок у ПС або
внесення змін для їхнього усунення, а також введення нових можливостей до ПС
або до середовища функціонування;
– стабільність – атрибут, що вказує на сталість структури й ризик
її модифікації;
– простота тестування – атрибут, що вказує на зусилля при проведенні
валідації й верифікації з метою виявлення невідповідностей вимогам, а також на
необхідність проведення модифікації ПС й сертифікації;
– погодженість – атрибут, що показує відповідність даного атрибута
угодам, правилам і приписам стандарту.
6. Переносність – множина показників, що вказують на здатність ПС адаптуватися до роботи
в нових умовах середовища виконання. Середовище може бути організаційне,
апаратне й програмне. Тому перенесення ПС в нове середовище виконання може бути
пов’язано з сукупністю дій, спрямованих на забезпечення його функціонування в
середовищі, відмінному від того середовища, у якому воно створювалося з
урахуванням нових програмних, організаційних і технічних можливостей.
Переносність містить у собі такі атрибути:
– адаптивність визначає зусилля, що витрачаються на адаптацію до
різних середовищ;
– простота налагодження визначає необхідні зусилля для запуску
певного ПС в спеціальному середовищі;
– співіснування визначає можливість використання спеціального ПС в
середовищі діючої системи;
– замінність забезпечує можливість інтероперабельності при спільній
роботі з іншими програмами з необхідною інсталяцією або адаптацією ПС;
– узгодженість – це відповідність стандартам або угодами про
забезпечення перенесення ПС в інше середовище.
На сьогодні у програмній інженерії ще не сформувалася остаточно система
метрик. Діють різні підходи до визначення їхнього набору й методів вимірювання
[11–15]. Система вимірювання містить у собі метрики й моделі вимірювань, які
використовуються для кількісної оцінки якості ПС. При визначенні вимог до ПС
задаються відповідні ним зовнішні характеристики і їхні атрибути
(характеристики), що визначають різні аспекти керування продуктом у певному
середовищі. Для набору характеристик якості ПС, наведених у вимогах,
визначаються відповідні метрики, моделі їхньої оцінки й діапазон значень мір
для вимірювання окремих атрибутів якості.
Відповідно до стандарту [1] метрики визначаються за моделями виміру
атрибутів ПС на всіх процесах ЖЦ (проміжна, внутрішня метрика) і особливо на
процесі тестування або функціонування (зовнішні метрики) продукту. Наведемо
класифікацію метрик ПС, правил для проведення метричного аналізу й процесу
їхнього виміру.
Типи метрик. Існує три типи метрик:
– метрики програмного продукту, які використовуються для
вимірювання його характеристик – властивостей;
– метрики процесу, які використовуються для вимірювання властивості
процесу ЖЦ створення продукту;
– метрики використання.
Метрики програмного продукту містять у собі:
– зовнішні метрики, що визначають властивості продукту, видимі
користувачеві;
– внутрішні метрики, що визначають властивості, видимі тільки
команді розробників.
Зовнішні метрики продукту – це метрики:
– надійності продукту, які використовують для визначення числа
дефектів;
– функціональності, за допомогою яких визначають наявність і
правильність реалізації функцій у продукті;
– супроводу, за допомогою яких вимірюють ресурси продукту
(швидкість, пам’ять, середовище);
– застосування продукту, які сприяють визначенню ступеня
доступності для вивчення й використання;
– вартості створеного продукту.
Внутрішні метрики продукту вміщують:
– метрики розміру, необхідні для вимірювання продукту за допомогою
його внутрішніх характеристик;
– метрики складності, необхідні для визначення складності продукту;
– метрики стилю, які використовуються для визначення підходів і
технологій створення окремих компонентів продукту і його документів.
Внутрішні метрики дозволяють визначити продуктивність продукту і є релевантними
відносно зовнішніх метрик.
Зовнішні й внутрішні метрики задають на процесі формування вимог до ПС і
є предметом планування й керування досягненням якості кінцевого програмного
продукту.
Метрики продукту часто описуються комплексом моделей для встановлення
різних властивостей, значень моделі якості або прогнозування. Вимірювання
виконують, як правило, після калібрування метрик на ранніх процесах проекту.
Загальна міра – ступінь трасування, що визначають числом трас, які
простежуються за моделями сценаріїв типу UML й оцінкою кількості:
– вимог; – сценаріїв і дійових осіб;
– об’єктів, вміщених у сценарій, і локалізація вимог до кожного
сценарію;
– параметрів й операцій об’єкта й ін.
Стандарт ISO/IEC 9126–2 визначає такі типи мір:
– міра розміру ПС в різних одиницях вимірювання (число функцій, рядків у
програмі, розмір дискової пам’яті й ін.);
– міра часу (функціонування системи, виконання компонента й ін.);
– міра зусиль (продуктивність праці, трудомісткість й ін.);
– міра обліку (кількість помилок, число відмов, відповідей системи та
ін.).
Спеціальною мірою може бути рівень використання повторних компонентів,
яку вимірюють як відношення розміру продукту, виготовленого з готових
компонентів, до розміру системи в цілому. Така міра використовується також при
визначенні вартості і якості ПС. Приклади метрик:
– загальне число об’єктів і число повторно використовуваних;
– загальне число операцій, повторно використовуваних і нових
операцій;
– число класів, що успадковують специфічні операції;
– число класів, від яких залежить певний клас;
– число користувачів класу або операцій та ін.
При оцінці загальної кількості певних величин часто використовують
середньостатистичні метрики (середнє число операцій у класі, класу нащадків або
операцій класу й ін.).
Як правило, міри є суб’єктивними й залежать від знань експертів, що
виконують кількісні оцінки атрибутів компонентів програмного продукту.
Прикладом широко використовуваних зовнішніх метрик програм є метрики
Холстеда – це характеристики програм, виявлених на основі статичної структури
програми конкретною мовою програмування: число входжень операндів й операторів,
що найчастіше зустрічаються; довжина опису програми як сума числа входжень всіх
операндів й операторів та ін.
На основі цих атрибутів можна обчислити час програмування, рівень
програми (структурованість та якість) і мови програмування (абстракції засобів
мови й орієнтація на проблему) та ін.
Як метрику процесу можна використовувати час розробки, число помилок,
знайдених на процесі тестування та ін. Частіше застосовують такі метрики
процесу:
– загальний час розробки й час окремо для кожної стадії;
– час модифікації моделей;
– час виконання робіт на процесі;
– число знайдених помилок при інспектуванні;
– вартість перевірки якості;
– вартість процесу розробки.
Метрики використання призначено для вимірювання ступеня задоволення
потреб користувача для розв’язання задач. Вони допомагають оцінити не
властивості самої програми, а результати її експлуатації – експлуатаційну якість.
Як приклад – точність і повнота реалізації завдань користувача, а також
витрачені ресурси (трудовитрати, продуктивність та ін.) на ефективне
розв’язання задач користувача. Оцінка вимог користувача виконується за
допомогою зовнішніх метрик.
9.1.3. Стандартна оцінка показників якості
Оцінка якості ПС згідно з чотирирівневою моделлю якості починається з
нижнього рівня ієрархії, тобто з найелементарнішої властивості оцінюваного
атрибута показника якості згідно з встановленими мірами. При проектуванні системи
визначають значення оцінних елементів з кожного атрибута показника
аналізованого ПС, що відображений у вимогах.
За визначенням стандарту ISO/IES 9126-2 метрика якості ПС являє собою
«модель вимірювання атрибута, що зв’язує його з показником якості». При
вимірюванні показників якості даний стандарт дає змогу визначати такі типи мір:
– міри розміру в різних одиницях вимірювання (кількість функцій,
розмір програми, обсяг ресурсів й ін.);
– міри часу – періоди реального, процесорного або календарного часу
(час функціонування системи, час виконання компонента, час використання й ін.);
– міри зусиль – продуктивний час, витрачений на реалізацію проекту
(продуктивність праці окремих учасників проекту, колективна трудомісткість та
ін.);
– міри інтервалів між подіями, наприклад, час між послідовними
відмовами;
– міри лічби – лічильники для визначення кількості виявлених помилок,
структурної складності програми, числа несумісних елементів, числа змін
(наприклад, число виявлених відмов та ін.).
Метрики якості, що використовують для оцінки ступеня простоти тестування
за допомогою даних (безвідмовна робота, виконуваність функцій, зручність
застосування інтерфейсів користувачів, БД і т.п.) після проведення випробувань
ПС на множині тестів.
Напрацювання на відмову як атрибут надійності – це середній час між
появою загроз, що порушують безпеку, складова вимірюваної оцінки збитку,
завданого відповідними загрозами.
Дуже часто оцінка програми здійснюється за кількістю рядків. При
зіставленні двох програм, що реалізують одне застосування, перевага надається
короткій програмі, оскільки її створює більш кваліфікований персонал, в ній менше
прихованих помилок, її легше модифікувати. За вартістю вона дорожче, хоча часу
на налагодження й модифікацію витрачають більше. Отже, довжину програми можна
використати як допоміжну властивість для порівняння програм з урахуванням
однакової кваліфікації розробників, єдиного стилю розробки й спільного
середовища.
Якщо у вимогах до ПС було зазначено отримання кількох показників, то
обчислений після збирання даних показник множиться на відповідний ваговий
коефіцієнт, а потім підсумовуються всі показники для отримання комплексної
оцінки рівня якості ПС.
На основі вимірювання кількісних характеристик і проведення експертизи
якісних показників із застосуванням вагових коефіцієнтів, що нівелюють різні
показники, визначається підсумкова оцінка якості продукту шляхом підсумовування
результатів за окремими показниками й порівняння їх з еталонними показниками ПС
(вартість, час, ресурси й ін.).
Іншими словами, при проведенні оцінки окремого показника за допомогою
оцінних елементів визначають ваговий коефіцієнт k-метрики, j-показника, i- атрибута.
Наприклад, як j-показник візьмемо
переносність. Цей показник буде обчислюватися за п’ятьма атрибутами (i = 1,..., 5), причому кожний з них буде множитися на відповідний
коефіцієнт ki.
Всі метрики j-атрибута підсумовують
й утворюють i-показник
якості. Коли всі атрибути оцінено
за кожним з показників якості, виробляється сумарна оцінка окремого показника,
а потім й інтегральна оцінка якості з урахуванням вагових коефіцієнтів всіх
показників ПС.
В остаточному підсумку результат оцінки якості є критерієм ефективності
й доцільності застосування методів проектування, інструментальних засобів і
методик оцінювання результатів створення програмного продукту на процесах ЖЦ.
Для викладу оцінки значень показників якості використовують стандарт
[4], у якому представлено такі методи: вимірювальний, реєстраційний,
обчислювальний та експертний (а також комбінації цих методів).
Вимірювальний метод базується на використанні вимірювальних і
спеціальних програмних засобів для отримання інформації про характеристики ПС,
наприклад, визначення обсягу, числа рядків коду, операторів, кількості гілок у
програмі, число точок входу (виходу), реактивність та ін.
Реєстраційний метод використовують для підрахунку часу, числа збоїв або
відмов, початку й кінця роботи системи у процесі його виконання.
Розрахунковий метод базується на статистичних даних, зібраних при
проведенні випробувань, експлуатації й супроводі ПС. Розрахунковими методами
оцінюються показники надійності, точності, стійкості, реактивності й ін.
Експертний метод здійснюється групою експертів – фахівців, компетентних у розв’язку
певної задачі або типу ПС. Їхня оцінка базується на досвіді й інтуїції, а не на
безпосередніх результатах розрахунків або експериментів. Цей метод здійснюється
шляхом перегляду програм, кодів, супровідних документів і сприяє якісному
оцінюванню створеного продукту. Для цього встановлюють контрольовані ознаки,
які корелюють з одним або декількома показниками якості й вміщені в карти попиту
експертів. Метод використовується для оцінювання таких показників, як простота
аналізу, документованість, структурованість ПС та ін.
Для оцінювання значень показників якості залежно від особливостей
використаних ними властивостей, призначення, способів їхнього визначення
застосовуються:
– шкала метрична (1.1 – абсолютна, 1.2 – відносна, 1.3 –
інтегральна);
– шкала порядкова (рангова), що дозволяє визначати ранг
характеристики шляхом порівняння з опорними;
– класифікаційна шкала, що характеризує наявність або відсутність
розглянутої властивості в оцінюваному програмному забезпеченні.
Показники, які обчислюються за допомогою метричних шкал, називають
кількісними, а визначені за допомогою порядкових і класифікаційних шкал –
якісними.
Атрибути програмної системи, що характеризують її якість, вимірюють з
використанням метрик якості. Метрика визначає міру атрибута, тобто змінну, якій
привласнюється значення, отримане внаслідок вимірювання.
Для правильного використання результатів вимірювань кожна міра ідентифікується
відповідною шкалою.
Стандарт ISO/IES 9126–2 рекомендує застосовувати п’ять видів шкал
вимірювання значень, які впорядковано від менш строгої до більш строгої:
– номінальна шкала відображає категорії властивостей оцінюваного
об’єкта без їхнього впорядкування;
– порядкова шкала впорядковує характеристики за зростанням або
спадання шляхом порівняння їх з базовими значеннями;
– інтервальна шкала задає істотні властивості об’єкта (наприклад,
календарна дата);
– відносна шкала задає певне значення за вибраною одиницею;
– абсолютна шкала вказує на фактичне значення величини (наприклад,
число помилок у програмі дорівнює 10).
9.1.4. Керування якістю програмних систем
Під керуванням
якості розуміють
сукупність організаційної структури й відповідальних осіб, а також процедур,
процесів і ресурсів для планування й керування досягненням якості ПС. Керування
якістю – SQM (Software Quality Management) базується на застосуванні
стандартних положень щодо гарантії якості – SQA (Software Quality Assurance)
[4, 14].
Мета процесу SQA полягає в гарантуванні того, що продукти й процеси
узгоджуються з вимогами, відповідають планам і складаються з таких видів
діяльності:
– впровадження стандартів і відповідних процедур розробки ПС на
процесах ЖЦ;
– оцінка дотримання положень цих стандартів і процедур.
Гарантія якості полягає в наступному:
– перевірка несуперечності й виконуваності планів;
– узгодження проміжних робочих продуктів із плановими показниками;
– перевірка виготовлених продуктів певним вимогам;
– аналіз застосовуваних процесів на відповідність договору й
планам;
– узгодження із замовником середовища й методів розробки продукту;
– перевірка вибраних метрик продуктів, процесів і засобів їхнього
вимірювання відповідно до затвердженого стандарту й процедур вимірювання.
Мета процесу керування SQM – моніторинг (систематичний контроль) якості
для гарантії того, що продукт буде задовольняти споживача, і передбачує:
– визначення кількісних властивостей якості, ґрунтованих на
виявлених і передбачених потребах користувачів;
– керування реалізацією поставлених цілей для досягнення якості.
Процес SQM ґрунтується на гарантії того, що:
– цілі досягнення необхідної якості встановлено для всіх робочих
продуктів у контрольних точках продукту;
– визначено стратегію досягнення якості, метрики, критерії, засоби,
вимоги до процесу вимірювання та ін.;
– визначено й виконано дії, пов’язані з наданням продуктам властивостей
якості;
– проведено контроль якості (SQA, верифікація й валідація) і цілей;
– виконані процеси вимірювання й оцінювання кінцевого продукту на
досягнення необхідної якості.
Основні стандартні положення [1-4, 14] щодо створення якісного продукту й оцінки досягнутого ним рівня
дозволяють виділяти два процеси забезпечення якості на процесах ЖЦ:
– гарантія (підтвердження) якості ПС як результат певної діяльності на
кожному процесі ЖЦ із перевіркою відповідності системи стандартам і процедурам,
орієнтованим на досягненні якості;
– інженерія якості як процес надання продуктам ПС властивостей
функціональності, надійності, супроводу й інших характеристик якості.
Процеси досягнення якості призначено для:
– керування, розробки й забезпечення гарантій відповідно до зазначених
стандартів і процедур;
– керування конфігурацією (ідентифікація, урахування стану й дій з
аутентифікації), ризиком і проектом відповідно з стандартів й процедур;
– контроль базової версії ПС і реалізованих у ній характеристик якості.
Виконання зазначених процесів складається з таких дій:
– оцінка стандартів і процедур, які виконуються при розробленні програм;
– ревізія керування, розробки й забезпечення гарантії якості ПС, а також
проектної документації (звіти, графіки, розробки, повідомлення й ін.);
– контроль проведення формальних інспекцій і переглядів;
– аналіз і контроль проведення приймального тестування (випробування)
ПС.
Для організації, що займається розробкою ПС, у тому числі з компонентів,
інженерія якості ПС повинна підтримуватися системою керування якістю
(планування, облік і контроль).
Інженерія якості складається з набору методів і заходів, за допомогою яких програмні
продукти перевіряють на виконання вимог до якості й забезпечуються
характеристиками, передбаченими у вимогах на ПС.
Система якості (Quality systems – QS) [14] – це набір організаційних структур, методик,
заходів, процесів і ресурсів для здійснення керування якістю. Для забезпечення
необхідного рівня якості ПС застосовуються два підходи. Один з них орієнтується
на кінцевий програмний продукт, а другий – на процес створення продукту.
При підході, орієнтованому на продукт, оцінка якості проводиться після
випробування ПС. Цей підхід базується на припущенні, що чим більше виявлено й
усунуто помилок у продукті під час проведення випробувань, тим вищою є його
якість.
При другому підході передбачають й приймають заходи щодо запобігання,
оперативного виявлення й усунення помилок, починаючи з початкових процесів ЖЦ
відповідно до плану й процедур забезпечення якості ПС, що розроблюється. Цей
підхід представлено у серії стандартів ISO 9000 та 9000-1,2,3, що дає
рекомендації організаціям-розробникам створювати систему якості згідно з
схемою, наведеною на рисунку 9.1.
Важливе місце в інженерії якості приділяється процесу вимірювання
характеристик процесів ЖЦ, його ресурсів і створюваних на них робочих
продуктах. Цей процес реалізується групою якості, верифікації й тестування. У
її функції входить планування, оперативне керування й забезпечення якості.
Рис. 9.1. Вимоги стандарту до організації системи якості
Планування якості являє собою діяльність, спрямовану на визначення
цілей і вимог до якості. Воно охоплює ідентифікацію, встановлення цілей, вимог
до якості, класифікацію й оцінку якості. Складають календарний план-графік для
проведення аналізу стану розробки й послідовного вимірювання спланованих
показників і критеріїв на процесах ЖЦ.
Оперативне керування складається з методів й видів діяльності
оперативного характеру для поточного керування процесом проектування й усунення
причин незадовільного функціонування ПС.
Забезпечення якості полягає у виконанні й перевірці того, що об’єкт
розробки виконує зазначені вимоги до якості. Цілі забезпечення якості можуть
бути внутрішні й зовнішні. Внутрішні цілі – створення впевненості у керівника
проекту, що якість забезпечено. Зовнішні цілі – це запевнення користувача, що
необхідну якість досягнуто й отримано якісне програмне забезпечення.
Як показує досвід, ряд фірм, що випускають програмну продукцію, мають
системи якості, що забезпечує ними виробництво конкурентоспроможної продукції.
Система якості – це моніторинг попиту на новий вид продукції, що випускається,
контроль усіх ланок її виробництва, включаючи підбір і постачання готових
компонентів для системи.
При відсутності відповідних служб якості розробники ПС повинні
використовувати власні нормативні й методичні документи, що регламентують
процес керування якістю ПС для всіх категорій розробників і користувачів
програмної продукції.
9.2. Моделі оцінки надійності програмних систем
З усіх напрямів програмної інженерії надійність ПС є найбільш
дослідженим. Їй передувала розробка теорії надійності технічних засобів, що
вплинула на розвиток надійності ПС. Питаннями надійності ПС займалися
розробники ПС, намагаючись різними системними засобами забезпечити надійність,
що задовольняє замовника, а також теоретики, які, вивчаючи природу
функціонування ПС, створили математичні моделі надійності, що враховують різні
аспекти роботи ПС (виникнення помилок, збоїв, відмов та ін.) і дозволяють
оцінити реальну надійність. Отже надійність ПС сформувалася як самостійна
теоретична й прикладна наука [5–10, 16–24].
Надійність складних ПС істотно відрізняється від надійності апаратур.
Носії даних (файли, сервер і т.п.) мають високу надійність, записи на них
можуть зберігатися тривалий час без руйнування, оскільки фізичному руйнуванню
вони практично не підлягають.
З погляду прикладної науки надійність – це здатність ПС зберігати свої властивості (безвідмовність, стійкість
та ін.), перетворювати вихідні дані на результати протягом певного проміжку
часу за певних умов експлуатації. Зниження надійності ПС відбувається через
помилки у вимогах, проектуванні й виконанні. Відмови й помилки залежать від
способу виробництва продукту й з’являються в програмах при їхньому виконанні на
деякому проміжку часу.
Для багатьох систем (реального часу, радарні системи, системи безпеки,
медичне устаткування з вбудованими програмами та ін.) надійність – головна
цільова функція їх реалізації. Для таких типів систем висувають високі вимоги
до надійності, такі, як відсутність помилок, вірогідність, безпека та ін.
Таким чином, оцінка надійності ПС залежить від числа помилок, що залишилися
не усунутими у програмах. У процесі експлуатації ПС помилки виявляють й
усувають. Якщо при виправленні помилок не вносяться нові або, принаймні, нових
помилок вноситься менше, ніж усувається, то в процесі експлуатації надійність
ПС безперервно зростає. Чим інтенсивніше здійснюється експлуатація, тим
інтенсивніше виявляються помилки й швидше зростає надійність системи й
відповідно її якість.
Надійність є функцією помилок, що залишилися в ПС після введення його до
експлуатації. ПС без помилок є абсолютно надійним. Але для більшості програм
абсолютна надійність практично недосяжна. Помилки, що залишилися незнайденими,
виявляють себе час від часу за певних умов (наприклад, при певній сукупності
вихідних даних) супроводу й експлуатації системи.
Для оцінки надійності ПС використовуються такі статистичні показники, як
ймовірність і час безвідмовної роботи, можливість відмови й частота
(інтенсивність) відмов. Оскільки як причини відмов розглядаються тільки помилки
в програмі, які не можуть самоусуватися, то ПС варто відносити до класу систем,
що не оновлюють.
При кожному вияві нової помилки, як правило, здійснюється її локалізація
й виправлення. При цьому накопичена до цього статистика про відмови втрачає
своє значення, оскільки після внесення змін програма, власне кажучи, є новою
програмою на відміну від тієї, яка до цього випробовувалася.
У зв’язку з виправленням помилок у ПС надійність, тобто її окремі
атрибути, будуть увесь час змінюватися, як правило, у бік покращання. Отже,
їхня оцінка буде мати тимчасовий і наближений характер. Тому виникає
необхідність у використанні нових властивостей, адекватних реальному процесу
вимірювання надійності, таких, як залежність інтенсивності виявлених помилок
від числа прогонів програми й залежність відмов від часу функціонування ПС
тощо.
9.2.1. Ґрунтовні поняття проблематики надійності
Формальне визначення моделей надійності ПС. З теоретичної точки зору під надійністю ПС розуміють здатність системи зберігати свої властивості
(безвідмовність, відновлюваність) на певному рівні протягом фіксованого
проміжку часу за певних умов експлуатації. Інакше кажучи, є імовірність того,
що функціонуюча ПС у заданому середовищі не дасть відмов у інтервалі часу (t, t+k) за умови, що остання відмова ПС й усунення відповідної помилки відбулися
до моменту часу t. Чим
більше часу працює система без відмов, тим вона надійніше.
Дослідження надійності проводиться за допомогою методів теорії
ймовірностей, математичної статистики, відновлення систем й ін. Формально
надійність можна визначити як таку ймовірність:
P(i) = P, якщо немає відмов у i прогонах
програми на тестах,
P(t) = P, якщо немає відмов у інтервалі часу (0, t) виконання програми.
Якщо при відмові працездатність системи підлягає відновленню в процесі
експлуатації, то така система називається відновлюваною. Головними показниками
такої системи є час безвідмовної роботи ПС і час її відновлення після відмови.
Якщо ці часи розподілені за степеневим законом, то для розрахунку надійності
можна використати однорідні марковські процеси, але якщо вони розподілені за
довільним законом, то розрахунок надійності ускладнюється й виконується за
наближеними формулами. Ймовірність безвідмовної роботи системи визначається
приблизно за формулою:
Якщо спостерігається потік відмов, то робота системи підпорядковується
пуассонівському закону, а ймовірність її безвідмовної роботи визначається за
формулою:
Дослідження надійності ПС з різних точок зору її теорій привели до
розробки великої кількості моделей надійності ПС, які орієнтовані на
математичну оцінку надійності ПС. Багато моделей надійності дають наближені
оцінки й виходять із того, що помилка, яка виникла, або відмова негайно
усуваються, і нові помилки при цьому не вносяться. Такі моделі надійності
визначаються математичною залежністю між часом виконання програми й загальним
числом виявлених помилок.
Базові поняття моделей надійності ПС. Формально моделі оцінки надійності ПС ґрунтуються
на теорії надійності й математичному апараті з припущенням деяких обмежень, що
впливають на цю оцінку. Головним джерелом інформації, що використовується в
моделях надійності, є процес тестування, експлуатації ПС і різного виду
ситуації, що виникають у них. Ситуації, які виникають через помилки у ПС,
вимагають усунення помилок, а потім продовження тестування. До базових понять,
які використовують в моделях надійності ПС, належать такі [5-9].
Відмова ПC (failure) – це перехід ПС із робочого стану в неробочий, або
ситуація, коли отримані результати не відповідають певним припустимим
значенням. Відмова спричиняється зовнішніми чинниками (змінами елементів
середовища експлуатації) і внутрішніми – дефектами безпосередньо в ПС.
Дефект (fault) у ПС – це наслідок виконання елемента програми, що призводить до
деякої події, наприклад, при неправильній інтерпретації цього елемента
комп’ютером або людиною. Дефект є наслідком помилок розробника на кожному з
процесів розробки – в описі специфікацій вимог, початкових або проектних
специфікаціях, експлуатаційній документації тощо. Дефекти в програмі, які не
виявлено під час перевірок, є джерелом потенційних помилок і відмов ПС.
Виявлення дефекту у вигляді відмови залежить від того, який шлях буде
використано, щоб знайти помилку в коді або у вхідних даних. Однак не кожний
дефект ПС може викликати відмову або певна відмова може викликати аномалію
внаслідок виявлення зовнішніх помилок і дефектів.
Помилка (error) може бути наслідком недоліку в одному із процесів розробки ПС,
що призводить до неправильної інтерпретації проміжної інформації, поданої
розробником, або при прийнятті ним неправильних рішень.
Інтенсивність відмов – це частота появи відмов або дефектів у ПС при її
тестуванні або експлуатації.
При виявленні відхилення результатів від очікуваних під час тестування
або супроводу здійснюється пошук і з’ясовуються причини цих відхилень для
виправлення пов’язаних із цим помилок.
Як вхідні параметри моделі оцінки надійності ПС використовують дані про
помилки, відмови, їхню інтенсивність, зібрані у процесі тестування й
експлуатації.
Випадковий характер виникнення помилок у ПС. Процес виникнення помилок і відмов у ПС є
випадковим й в цілому визначається часом їхнього виникнення або частотою, іхній
кількостю та інтенсивністю появи в ПС. У зв’язку із цим всі моделі надійності
ґрунтуються саме на знаходженні випадкової величини, що отримує значення за
певним законом розподілу. Наприклад, межі ПС, тривалість роботи програми до
першої відмови, кількість дефектів і т.п. [10].
Якщо випадкова величина дискретна, тобто отримує скінченне число значень
у вигляді послідовності х1, х2, …, xn,…, то закон розподілу
Ця функція визначає ймовірність знаходження випадкової величини в
певному інтервалі відрізка часу на прямій лінії системи координат, при цьому
Якщо характеристика випадкової функції є невипадковою величиною, то
визначається математичне очікування або дисперсія, як середнє відхилення від
середньої реалізації випадкової функції.
Пошук випадкових величин здійснюється стохастичними методами, тому
процес, відповідно, є стохастичним, ймовірним.
Якщо на множині T визначається
випадковий процес, то для всіх його точок визначається випадкова величина
Згідно з теорією випадкових процесів процес виникнення помилок і відмов
у ПС є стохастичним, і моделі надійності також є стохастичними.
До категорії випадкових процесів належить марковський процес, основною
властивістю якого є те, що його поведінка після моменту часу t залежить тільки від його значення, і не залежить від поведінки процесу
до моменту t.
Оскільки тестування є динамічним процесом, що забезпечує пошук дефектів
і відмов, які виникають випадково в ПС, то його можна пояснити за допомогою
функції
При цьому область T марковського
процесу може бути послідовністю моментів часу, тоді процес буде дискретним, а T – скінченним або нескінченним. Якщо х – скінченна множина, то процес є процесом із скінченим числом станів.
Марковський процес із дискретним часом і скінченним числом станів називається
марковським ланцюгом.
У загальному випадку ймовірність визначається функцією pij(t, x, s) за умови, що система в момент t переходить із i-стану в j-стан моменту s, і ця
функція визначається шляхом розв’язанням системи рівнянь, розробленої
Колмогоровим:
Іншим способом дослідження надійності на основі відмов у ПС є класична
теорія ймовірностей, відповідно до якої відмови в ПC (на відміну від відмов
технічних засобів) вважаються випадковими й залежать від дефектів, внесених при
розробленні ПС. Розгляд їх як випадкових величин ґрунтується на таких
припущеннях:
– кількість дефектів у ПС невідоме;
– час виявлення й місцезнаходження кожного дефекту є непередбачуваним.
Залежність кількості відмов від часу виконання пов’язана з тим, що чим
довше використовується ПС, тим більша ймовірність проходження фрагментом коду,
що має дефект.
Всі моделі оцінки надійності ґрунтуються на статистиці відмов та
розподілі інтенсивності виявлених відмов у ПС.
У більшості моделей надійності виходять із припущення, що знайдені дефекти
усуваються негайно (або часом їхнього усунення можна нехтувати) і при цьому
нові дефекти не вносяться. Внаслідок цього кількість дефектів у ПС зменшується,
а надійність зростає, такі моделі отримали назву моделей зростання надійності.
9.2.2. Класифікація моделей надійності
Як відомо, на сьогодні розроблено велику кількість моделей надійності ПС
та їхніх модифікацій. Кожна із цих моделей визначає функцію надійності, яку
можна визначити при наданні їй відповідних даних, зібраних під час
функціонування ПС. Основними параметрами є відмова й час, інші додаткові
параметри пов’язано з типом ПС, умовами середовища й даних.
Через велику розмаїтість моделей надійності розроблено кілька підходів
до класифікації цих моделей. Такі підходи в цілому ґрунтуються на історії
помилок у ПС, що перевіряється й тестується на процесах ЖЦ. Однією з
класифікацій моделей надійності ПС є класифікація Хетча [10], за якою моделі
розділяються на прогнозні, вимірювальні й оцінні (рис. 9.2).
Прогнозні моделі надійності ґрунтуються на вимірюванні технічних характеристик
створюваної програми: довжина, складність, число циклів і ступінь їхньої
складності, кількість помилок на сторінку операторів програми та ін. Наприклад,
модель Мотлі-Брукса ґрунтується на довжині й складності структури програми
(кількість областей, циклів, складність циклів), кількості й типах змінних, а
також інтерфейсів. У цих моделях довжина програми є основою прогнозування
кількості помилок, наприклад, для 100 операторів програми можна змоделювати
інтенсивність відмов.
Рис. 9.2.
Класифікація моделей надійності
Модель Холстеда прогнозує кількість помилок у програмі залежно від її
обсягу й таких даних, як число операцій (n1) і
операндів (n2), а також їхнє загальне число (N1, N2).
Час проектування деякої програми пропонується визначити за такою
формулою:
де S – число Страуда (Холстед визначив рівним 18 – число
розумових операцій в одиницю часу).
Обсяг визначається за формулою: V = (2 +
n2*) log2 ((2 + n2*),
де n2* – максимальне число різних операцій.
Вимірювальні моделі призначені для визначення надійності програмного
забезпечення, що працює із певним зовнішнім середовищем. Вони мають такі
обмеження:
− програмне забезпечення не модифікується під час
періоду вимірювання властивостей надійності;
− виявлені помилки не виправляються;
− вимірювання надійності здійснюється для
зафіксованої конфігурації програмного забезпечення.
Типовим прикладом таких моделей є моделі Нельсона й Рамамурти-Бастани та ін.
Модель оцінки надійності Нельсона ґрунтується на виконанні k-прогонів програми при тестуванні й дозволяє визначити надійність
де tj
– час виконання j-прогону,
У процесі випробувань програми на тестових nl – прогонах оцінка надійності визначається за формулою R (l)= 1 – nl / k, де k – число прогонів програми.
Таким чином, ця модель розглядає отримані кількісні дані про проведені
прогони.
Оцінні моделі ґрунтуються на серії тестових прогонів і здійснюються на процесах
тестування ПC. У тестовому середовищі визначається ймовірність відмови програми
при її виконанні або тестуванні.
Ці типи моделей можуть застосовуватися на процесах ЖЦ. Крім того,
результати прогнозних моделей можуть використовуватися як вхідні дані для
оцінної моделі. Існують моделі (наприклад, модель Муси), які можна розглядати і
як оцінні, й як вимірювальні моделі [16, 17].
Інший вид класифікації моделей запропонував Гоєл [18, 19], відповідно до якої моделі надійності базуються на відмовах і
розділяються на чотири класи:
– без підрахунку помилок;
– з підрахунком відмов;
– з підсівом помилок;
– моделі з вибором областей вхідних значень.
Моделі без підрахунку помилок базуються на вимірюванні інтервалу часу між
відмовами й дозволяють спрогнозувати кількість помилок, що залишилися в
програмі. Після кожної відмови оцінюється надійність і визначається середній
час до наступної відмови. До таких моделей належать моделі Джелінски й Моранді,
Шику Вулвертона й Литвуда-Вералла [20, 21].
Моделі з підрахунком відмов базуються на кількості помилок, виявлених на
заданих інтервалах часу. Виникнення відмов залежно від часу є стохастичним
процесом з безперервною інтенсивністю, а кількість відмов є випадковою
величиною. Виявлені помилки, як правило, усуваються й тому кількість помилок в
одиницю часу зменшується. До цього класу моделей належать моделі Шумана, Шика–Вулвертона,
пуассонівська модель та ін. [21-24].
Моделі з підсівом помилок базуються на кількості усунутих помилок і підсіві
внесених у програму штучних помилок, тип і кількість яких заздалегідь є
відомими. Потім визначається співвідношення кількості прогнозованих помилок, що
залишилися, до кількості штучних помилок, що порівнюється зі співвідношенням
кількості виявлених дійсних помилок до кількості виявлених штучних помилок.
Результат порівняння використовується для оцінки надійності і якості програми. При
внесенні змін у програму здійснюється повторне тестування й оцінка надійності.
Цей підхід до організації тестування громіздкій і рідко використовується через
додатковий обсяг робіт, пов’язаних з підбором, виконанням й усуненням штучних
помилок.
Моделі з вибором області вхідних значень ґрунтуються на генерації множини
тестових вибірок із вхідного розподілу, і оцінка надійності здійснюється,
виходячи з отриманих відмов на основі тестових вибірок із вхідної області. До
цього типу моделей належить модель Нельсона та ін. Таким чином, класифікація
моделей зростання надійності щодо процесу виявлення відмов, фактично
поділяється на дві групи:
– моделі, які розглядають кількість відмов як марковський процес;
– моделі, які розглядають інтенсивність відмов як пуассонівський
процес.
Чинник розподілу інтенсивності відмов розподіляє моделі на експонентні,
логарифмічні, геометричні, байєсівські та ін.
9.2.3. Марковські та пуассонівські моделі
надійності
Марковський процес характеризується дискретним часом і скінченною
множиною станів. Часовий параметр пробігає ненегативні числові значення, а
процес (ланцюгом) визначається набором ймовірностей переходу pij (n), тобто ймовірністю перейти на n-кроці зі стану i у стан j. Процес називається однорідним, якщо він не залежить від n.
У моделях, що базуються на процесі Маркова, передбачається, що кількість
дефектів, виявлених у ПС, у певний момент часу залежить від поведінки системи й
подається у вигляді стаціонарного ланцюга Маркова [5, 7, 10]. При цьому
кількість дефектів скінченна, але є невідомою величиною, що задається для
моделі у вигляді сталої. Інтенсивність відмов у ПС або швидкість проходу
ланцюгом залежить лише від кількості дефектів, які залишилися в ПС. До цієї групи належать моделі: Джелинскі-Моранді [20], Шика-Вулвертона, Шантикумера [21] та ін.
Далі буде розглянуто деякі моделі надійності, які забезпечують зростання
надійності ПС [7, 10], що знаходять широке застосування при тестуванні й
описують процес виявлення відмов за умови таких припущень:
– всі помилки у ПС не залежать одна від одної з погляду локалізації
відмов;
– інтенсивність відмов пропорційна поточному числу помилок у ПС
(убуває при тестуванні програмного забезпечення);
– ймовірність локалізації відмов залишається сталою;
– локалізовані помилки усуваються до того, як буде продовжено
тестування;
– при усуненні помилок нові помилки не вносяться.
Наведемо основні позначення величин для опису моделей зростання
надійності:
m – число виявлених відмов ПС за час тестування;
Хi – інтервали часу між відмовами i – 1 й i,
при i =1,...,
m;
Si – моменти часу відмов (тривалість тестування до i-відмови), Si
= Xk при i = 1,...,m;
T – тривалість тестування ПС (час, для якого визначається надійність);
N – оцінка числа помилок у ПС на початку тестування; M – оцінка числа прогнозованих помилок;
MТ – оцінка середнього часу до наступної відмови;
E (Tp) – оцінка середнього часу до завершення
тестування;
Var (Tp) – оцінка дисперсії;
R (t) – функція надійності ПС;
Zi (t) – функція ризику в момент часу t між i – 1 й i-відмовами;
с – коефіцієнт пропорційності;
b – частота виявлення помилок.
Далі розглядаються кілька моделей зростання надійності, що базуються на
цих припущеннях і використанні результатів тестування програм у частині відмов,
часу між ними та ін.
Модель Джелинського-Моранді. У цій моделі використовуються вихідні дані,
наведені вище, а також:
m – число виявлених відмов за час тестування,
Xi – інтервали часу між відмовами,
Т – тривалість тестування.
Функція ризику Zi(t) у момент часу t знаходиться
між i
– 1 й i має вигляд:
де i
= 1,…,m;
Ця функція вважається степеневою кусково-сталою функцією зі сталим
коефіцієнтом пропорційності й значенням ступеня – с. Оцінка параметрів c й N здійснюється за допомогою системи рівнянь
Сумарний час тестування
визначається так:
Вихідні показники для
оцінки надійності щодо зазначеного часу T такі:
− число помилок, що
залишилися, MT = N – m;
− середній час до поточної
відмови MТT = 1/(N – m) c;
− середній час до завершення
тестування і його дисперсія:
При цьому функція надійності визначається за формулою:
RT (t) = exp (– (N – m) ct),
при t
> 0 і числі
помилок, знайдених і виправлених на кожному інтервалі тестування, що дорівнює
одиниці.
Модель Шика-Вулвертона. Модель використовується тоді, коли інтенсивність відмов пропорційна не
тільки поточному числу помилок, а й часу, що минув з моменту останньої відмови.
Вихідні дані для цієї моделі аналогічні розглянутої вище моделі
Джелинські-Моранді:
m – число виявлених відмов за час тестування,
Xi – інтервали часу між відмовами,
Т – тривалість тестування.
Функції ризику Zi(t) у момент часу між i – 1 й i
– відмовами
визначаються у такий спосіб:
Ця функція є лінійною усередині кожного інтервалу часу між відмовами,
зростає з меншим кутом нахилу.
Оцінка c і N визначається із системи рівнянь:
До вихідних показників надійності щодо тривалості T належать:
− число помилок, що залишилися, MT = N – m;
− середній час до наступної відмови MTT = (p
/(2(N– m) c))1/2;
− середній час до завершення тестування і його дисперсія:
Функція надійності визначається за формулою:
Моделі пуассонівського типу базуються на виявленні відмов і моделюються
неоднорідним процесом, що задає
Модель Гоело-Окумото. Основою цієї моделі є опис процесу виявлення помилок за допомогою
неоднорідного пуассонівського процесу, її можна розглядати як модель
експоненційного зростання. У цій моделі інтенсивність відмов також залежить від
часу. Крім того, у ній кількість виявлених помилок трактується як випадкова
величина, значення якої залежить від тесту й інших умовних чинників.
Вихідні дані цієї моделі:
m – число виявлених відмов за час тестування,
Xi – інтервали часу між відмовами,
Т – тривалість тестування.
Функція середнього числа відмов, виявлених до моменту t, має вигляд
Функція інтенсивності
Оцінка b й N випливає із розв’язку рівнянь:
Вихідні показники надійності щодо часу T визначають так:
1) середнє число помилок, які були виявлені на інтервалі
2) функцію надійності
У цій моделі виявлення помилки трактується як випадкова величина,
значення якої залежить від тесту й операційного середовища.
В інших моделях кількість виявлених помилок розглядається як стала.
У моделях зростання надійності вихідною інформацією для розрахунку
надійності є інтервали часу між відмовами програми, що тестується, число відмов
і час, для якого визначається надійність програми при відмові. Згідно з цією
інформацією за допомогою моделей визначаються таки показники надійності:
– ймовірність безвідмовної роботи;
– середній час до наступної відмови;
– число невиявлених відмов (помилок);
– середній час додаткового тестування програми.
У моделі аналізу результатів
прогону тестів використовується при розрахунках загальне число експериментів
тестування й число відмов. Ця модель визначає тільки ймовірність безвідмовної
роботи програми й вибирається для випадків, коли попередні моделі не можна
використати (мало даних, некоректність обчислень). Формула визначення
ймовірності безвідмовної роботи із числа проведених експериментів має вигляд P = 1 – Neх / N,
де Neх – число помилкових
експериментів, N – число проведених
експериментів для перевірки роботи ПС.
Таким чином, можна зробити
висновок, що моделі надійності ПС ґрунтується на часі функціонування й/або
кількості відмов (помилок), отриманих у програмах у процесі їхнього тестування
або експлуатації. Моделі надійності враховують випадковий марковський і пуассонівський
характер відповідно до процесів виявлення помилок у програмах, а також їх
кількість та інтенсивність відмов.
9.2.4. Процеси оцінки надійності
Деякі типи систем реального часу, забезпечення безпеки та інші вимагають
високої надійності (неприпустимість помилок, точність, вірогідність й ін.), що
значною мірою залежить від кількості, яка залишилися, і не усунутих помилок у
процесі її розробки на процесах ЖЦ. У процесі експлуатації помилки також можуть
виявлятися й усуватися. Якщо при їхньому виправленні не вносяться нові помилки
або їх вноситься менше, ніж усувається, то в ході експлуатації надійність
системи безперервно зростає. Чим інтенсивніше здійснюється експлуатація, тим
інтенсивніше виявляються помилки й швидше зростає надійність.
На надійність ПС впливають, з одного боку, загрози, що призводять до
несприятливих наслідків, ризику порушення безпеки системи, а з іншого –
здатність сукупності компонентів системи зберігати стійкість у процесі її
експлуатації. Ризик зменшує властивості надійності, особливо, якщо виявлені
помилки можуть бути результатом виявлення прояву загрози ззовні.
Методи й моделі постійно розвиваються, оскільки надійність є однією з
ключових проблем сучасних ПС. З’явився новий напрямок – інженерія надійності ПС (Software reliability engineering – SRE), що
орієнтується на кількісне вивчення операційної поведінки компонентів ПС
відносно користувача, який очікує надійну роботу системи [14], і містить у
собі:
1) вимірювання надійності, тобто проведення кількісної оцінки методами
передбачення, збирання даних про поведінку системи в процесі тестування й
експлуатації ПС;
2) оцінку стратегії й метрик конструювання й вибору готових компонентів у
процесі розробки системи, а також середовища функціонування, що впливає на
надійність роботи системи;
3) сучасні методи інспектування, верифікації, валідації та тестування при
розробленні окремих компонентів і системи в цілому.
В інженерії надійності визначено новий термін dependability, що означає
залежність, тобто надійність у широкому сенсі [10], тобто порівняння з терміном
reliability [23] новий термін визначає здатність системи мати властивості,
бажані для користувача й такі, що дають йому впевненість у якісному виконанні
функцій, наданих у вимогах до системи. Dependability додає додаткові атрибути,
які повинна володіти ПС, а саме:
– готовність до використання (availability);
– готовністю до безперервного функціонування (reliability);
– безпека для навколишнього середовища, тобто здатність системи не
викликати катастрофічних наслідків у випадку відмови (safety);
– таємність і схоронність інформації (сonfidential);
– здатність до збереження системи й стійкості до довільної її зміни
(integrity);
– здатність до експлуатації ПС, простота виконання операцій
обслуговування, а також усунення помилок, відновлення системи після їхнього
усунення й т.п. (maintainability);
– готовність і схоронність інформації (security) і ін.
Досягнення необхідної надійності системи забезпечується шляхом
запобігання відмов (fault prevention), їх усунення (removal fault), можливого
виконання системи при їх наявності й оцінки можливості появи нових відмов і засобів
боротьби з ними. Відмови мають випадковий характер, аналіз яких ґрунтується на
методах теорії ймовірностей і випадкових процесів. З урахуванням цього й
розроблено велику кількість моделей надійності, найважливіші з яких наведено
вище.
Кожний програмний
компонент, його команди й дані обробляються в дискретні моменти часу t1, t2,…, tn,
і це може бути здійснено або вдало, або ні. Нехай за час Т після першого невдало обробленого компонента системи з’явилася
відмова й qb – ймовірність
цієї невдачі, тоді
Припустимо, що t убуває так, що час Т залишається фіксованим, тоді маємо
Для отримання високої
надійності ПС потрібно спостерігати за значенням цього показника якості на всіх
процесах ЖЦ, про що свідчать рекомендації стандарту ISO/IEC 12207. У ньому
керування якістю (а це означає і керування основним показником якості –
надійністю) визначено як новий обов’язковий процес ЖЦ в організації виконання
основних процесів реалізації ПС. У зв’язку із цим розглянемо мету й завдання
забезпечення надійності, що полягають у можливості передбачити виникнення
відмов і помилок у ПС, і зібрати статистику їхньої появи й виправлення на
основних процесах ЖЦ:
– специфікація вимог;
– проектування;
– реалізація;
– тестування;
– випробування;
– супровід.
З організаційного характеру
процесу керування якістю випливає, що забезпечення надійності припускає
складання плану-графіка, у якому відображаються такі види дій:
– виділення керованих і некерованих чинників процесу розробки, що
впливають на надійність (керовані чинники – розв’язки інспекції, обсяги всіх
видів ресурсів при тестуванні, некеровані чинники – параметри середовища
функціонування, досвід обслуговуючого персоналу, об’єм продукту, можливість зміни
вихідних вимог до ПС та ін.);
– вибір необхідних значень керованих чинників для оцінки досягнення
цільових вимог до інтенсивності відмов і прийняття необхідних обмежень;
– аналіз чинників, що впливають на інтенсивність відмов;
– розробка планів тестування й випробування продукту для оцінки надійності
ПС, у тому числі при специфікації вимог, відповідності їхнім вимогам стандарту
й проведення робіт з перевірки й атестації готового продукту [7, 14].
Забезпечення надійності на процесах ЖЦ. Розглянемо роботи, які виконуються на процесах ЖЦ
для досягнення надійності.
На процесі специфікації вимог визначаються завдання й зовнішні
специфікації основних (цільових) вимог до системи й ПС із поданням кількісних
метрик для оцінки надійності у термінах інтенсивності відмов або ймовірності
безвідмовного його функціонування.
Визначення цих подань проводиться шляхом інтерв’ю розробника з
користувачем для формування:
– пріоритетів функцій за критерієм важливості їхньої реалізації в ПС;
– сценаріїв виконання функцій;
– параметрів середовища й інтенсивності використання функцій програм та
їхніх відмов;
– характеристик моделі (вхідні й вихідні дані) і вхідного простору для
кожної функції;
– категорій відмов та їхньої інтенсивності при виконанні функції в
заданому сценарії із числом відмов у одиницю календарного часу.
Результатом роботи з користувачем над аналізом проекту є:
– класифікація відмов програмного забезпечення (за ступенем серйозності);
– обґрунтування вимог до інтенсивності відмов на основі компромісу між
надійністю, вартістю й зусиллями, затрачуваними на випуск продукту;
– визначення ставлення замовника до відмов різного ступеня серйозності і
його готовності сплачувати за зниження інтенсивності відмов за кожним
категорією серйозності;
– побудова функціональної конфігурації програмного забезпечення із
зазначенням частоти використання кожної функції;
– розбивка вхідного простору кожної функції на категорії даних для
наступного функціонального тестування програм на процесі випробувань;
– оцінка календарного часу роботи із процесором ПС.
На процесі проектування визначаються:
– розміри, тобто інформаційна й алгоритмічна складність всіх типів
проектованих компонентів;
– категорії дефектів, властиві всім типам компонентів ПC;
– стратегії функціонального тестування компонент за принципом «чорної
скриньки» за допомогою тестів для тестування й виявлення дефектів у класі
категорії даних.
Для компонентів ПС, що виконують різні функції, здійснюється:
– класифікація можливих дефектів і ступеня їхнього поширення в ПС;
– визначення середовища й інтенсивності використання компонента;
– оцінка ризику використання певного компонента в заданому контексті
системи;
– оцінка впливів відмов компонента на стійкість всієї системи та ін.
Для досягнення надійного продукту аналізуються:
– варіанти архітектури ПС на відповідність поставленим вимогам до
надійності;
– види технологій аналізу ризику, режимів відмов, дерев помилок і перелік
критичних компонентів для забезпечення властивостей відмовостійкості та відновлюваності
ПС;
– прогнозування показників розміру ПС, чутливості до помилок, ступеня
простоти тестування, оцінки ризику й складності системи.
В разі необхідності для покращання надійності ПС здійснюється
перерозподіл певних задач між виконавцями для перепроектування, підбору нових
повторно використовуваних компонентів та ін.
На процесі реалізації ПС проектні специфікації переводяться в тексти МП і
підготовлюються набори тестів для автономного й комплексного його тестування.
При проведенні автономного тестування забезпечення надійності полягає в
попередженні появи дефектів в окремих компонентах і створенні ефективних
методів захисту від них. Всі наступні етапи розробки не можуть забезпечити
надійність ПС, а лише сприяють підвищенню рівня надійності за рахунок виявлення
помилок, що залишилися, за допомогою тестів різних категорій.
Забезпечення надійності на цьому процесі досягається за рахунок:
– застосовуваної методології збирання й аналізу інформації про аномалії,
дефекти й відмови;
– методології виявлення й локалізації дефектів різних категорій;
– формування критеріїв завершення тестування, визначення строків
завершення тестування й вартості ресурсів тестування.
На процесі випробувань створюється план випробувань ПС, за яким проводиться
тестування на відповідність зовнішнім специфікаціям функцій і цілям проекту.
Випробування програмного продукту повинно здійснюватися групою фахівців
або користувачів у навколишньому середовищі функціонування або на іспитовому
стенді для імітації функцій компонентів відповідно до планів випробувань. При
підготовці до випробувань вивчається історія тестування на стадіях ЖЦ з метою
безпосереднього використання раніше розроблених тестів, а також складання
спеціальних тестів випробувань.
При випробуванні відповідно з плану здійснюють:
– оцінку надійності за результатами системного тестування й польових
випробувань за відповідними моделями надійності;
– керування зростанням надійності шляхом кількаразового виправлення й
регресійного тестування ПС;
– прийняття рішення про ступінь готовності ПС і можливості його передачі в
експлуатацію.
На процесі супроводу оцінка надійності ПС здійснюється за моделями
надійності, що відповідають типу ПС. Якщо виявлено помилки й внесені необхідні
зміни в ПС, здійснюють такі заходи:
– протоколювання відмов у ході функціонування ПС і вимірювання надійності
функціонування, а також використання результатів вимірювань при визначенні
втрат надійності в період часу експлуатації;
– аналіз частоти й серйозності відмов для визначення порядку усунення
відповідних помилок;
– оцінка впливу функціонування ПС на надійність в умовах удосконалення
технології або використання нових інструментів розробки ПС.
Таким чином, у розділі доведено, що надійність, як одна з головних характеристик ПС
визначається на моделях, які ґрунтуються на часі функціонування й/або кількості
відмов (помилок), отриманих у програмах у процесі їхнього тестування або
експлуатації. Деякі моделі надійності дозволяють прогнозувати число помилок у
процесі тестування, інші оцінювати надійність за допомогою функцій надійності й
за даними, зібраними при випробуванні. Охарактеризовано методи досягнення
надійності ПС на процесах ЖЦ.
9.3.
Сертифікація програмного продукту
Під сертифікацією
програмного продукту розуміють процес, що здійснюється третьою стороною для засвідчення його
спеціальним знаком або посвідченням ідентифікованої програмної продукції
(процесу або послуги) на відповідність конкретному стандарту, технічним умовам
або вимогам.
Сертифікат на програмну продукцію свідчить про відповідність перевірених
показників якості цієї продукції певним вимогам. В умовах ринкових відносин
наявність такого сертифікату підвищує конкурентоспроможність, є засобом
завоювання ринку й захисту споживачів від недоброякісної продукції.
Спеціальним декретом Кабінету Міністрів України «Про стандартизацію й
сертифікацію» передбачається два види сертифікації створюваної продукції:
обов’язкова й добровільна.
Обов’язкова сертифікація продукту орієнтується на проведення в Державній
системі сертифікації Укрсепро перевірок відповідності реальних властивостей
сертифікованої продукції вимогам, певним державним нормативним документам. До
обов’язкової сертифікації віднесено потенційно небезпечні й шкідливі продукти,
вироби, процеси. У цьому переліку не зазначено програмну продукцію, хоча
помилки в ній можуть призвести до небезпечних наслідків як для безпеки людей,
так і для економіки. Прикладом небезпечних наслідків можуть служити аварії при
запуску космічних кораблів «Челенджер» (США, 1995) і«Зеніт-2» (СНД, 1998),
причиною яких стали помилки в програмах керування польотом.
У зв’язку із цим ясно, що сертифікація програмної продукції як механізму
керування якістю, забезпечення її безпеки й конкурентоспроможності вітчизняних
програмних продуктів, захисту користувачів від недоброякісної продукції,
необхідна. Проте багато організацій, що створюють програмні продукти, не
вживають заходів з забезпечення їхньої якості й сертифікації. Це пояснюється
низкою причин:
– небажанням піддавати програмні продукти сертифікації, тому що це вимагає
додаткових ресурсів;
– нерозумінням замовника ПС переваг сертифікованого продукту;
– відсутністю в організаціях систем забезпечення якості та ін.;
– відсутністю ринку вітчизняної програмної продукції.
Системи забезпечення якості ПС, нормативно-методичні документи, що
визначають найраціональні й ефективні процеси й процедури його реалізації, а
також системи сертифікації програмних продуктів, спрямовано на розв’язання
таких завдань:
1) Створення нормативної бази інженерії якості ПС, що відповідає вимогам
міжнародних і державних стандартів.
2) Розробка типових елементів систем забезпечення якості в організаціях, що
розробляють програмні продукти.
3) Опанування й удосконалювання методів оцінки якості продуктів і
процесів їхнього виробництва.
4) Створення нормативно-методичної й інструментальної бази системи
сертифікації програмних продуктів.
До цих завдань додаються подання оцінки відповідно до моделі СММ [23] зрілості організації й процесів виробництва
програмних продуктів.
Висновок.
Представлено результати
досліджень проблематики якості ПС, що містить у собі методи інженерії якості,
метрики, оцінки атрибутів показників якості і якості в цілому. Зазначається, що
на оцінку якості ПС впливають методи інженерії вимог до ПС і методи, що
гарантують досягнення заданих характеристик на ранніх процесах ЖЦ. Розглянуто
моделі надійності, подано їхню класифікацію, наведено моделі марковського й
пуассонівського типів, основані на кількості помилок й інтенсивності відмов при
тестування ПС.