Тема. Моделі якості

План

1.   Класифікація моделей якості.

2.   Методи оцінки значень показників моделей якості.

3.   Основні поняття в проблематиці надійності програмних систем.

 

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

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

Планування якості включає:

Ø  Визначення продукту в термінах заданих характеристик якості.

Ø  Планування процесів для отримання необхідної якості.

Ø  Вибір методів оцінки планованих характеристик та встановленню відповідності продукту сформульованим вимогам.

У стандарті  визначені спеціальні процеси: забезпечення якості, верифікації, атестації (валідації), спільного аналізу, аудиту. Діяльності і техніки гарантії якості включають: інспекцію, верифікацію та валідацію ПЗ.

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

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

 

1.   Класифікація моделей якості

Модель якості Мак-кола

Одним з найбільш відомих попередників щодо забезпечення якості сучасних моделей є модель, представленої Джим Мак-­Колл (Jim McCall) [41] (також відомий як the General Electrics Model of 1977). Ця модель, а також інші сучасні моделі, беруть свій початок від американських військових (вона була розроблена для ВПС США) і, в першу чергу, до системи розробки і процесу розвитку системи. Це модель якості, в якій Мак-Колл намагається подолати розрив між користувачами та розробниками, зосередивши увагу на ряд програмних фактор якості, які відображають користувачів думки і розробників пріоритети.

Модель якості Маколла має, як показано на мал. 2, три основні перспективи для визначення та виявлення якості програмного продукту: продукт перегляду (здатність зазнавати змін), продукт з перехідною економікою (пристосовність до нових умов), і продукт діяльності (його експлуатаційних характеристик).

 


 

image3

Мал. 2

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

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

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

 

Модель якості Боема

Другий з основних попередників сучасних моделей якості є модель, представлена В. Боем в 1978 р. Він спробував врахувати недоліки моделі свого попередника. По суті своїй, в моделі він спробував визначити якість програмного забезпечення за заданими набором ознак і показників. Модель Боем схожа на Мак-Колл модель якості в тому, що вона також представляє собою ієрархічну модель якості, яка будується на високому рівні, характеристики проміжного рівня, примітивні характеристики — кожен з яких вносить свій внесок у загальний рівень якості.

Високог о рівня характеристики стосуються трьох основних питань, які покупець програмного забезпечення висуває:

ü  Як добре (легко, надійно, ефективно) можна використовувати ПЗ яке є?

ü  Ремонтопридатність: наскільки легко зрозуміти, змінити і перевіряти ще раз?

ü  Переносимість: чи можу використовувати його, якщо змінити своє оточення?

Для проміжного рівня є характерних 7 якісних характеристики, які у сукупності визначають рівень якості, що очікується від програмного забезпечення системи:

Ø  Переносимість: код має характерну переносимість в тій мірі, що вона може працювати добре і легко на конфігурації комп'ютерів, інші, ніж нинішній.

Ø  Надійність.

Ø  Ефективність: код має характерну ефективність такої міри, що ПЗ виконує свої цілі без витрачання ресурсів.

Ø  Юзабіліті: код має характерну зручність в тій мірі, що ПЗ є надійним, ефективним.

Ø  Тестованості (ремонтопридатність): код має характерну тестованість в тій мірі, що ПЗ сприяє формуванню критеріїв перевірки і підтримує оцінки його виконання.

Ø  Зрозумілість: код має характерну зрозумілість в тій мірі, що мета ПЗ зрозуміла інспектору.

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

Хоча моделі Боема і Мак-Колла можуть здатися дуже схожі, різниця в тому, що у моделі Мак-Колла основна увага фокусується на точному вимірі високого рівня характеристик, в той час як режим моделі Боема якості грунтується на широкий діапазон характеристик з розширеною і докладною увагою зосередженою на обслуговуванні.

 

 


Універсальна модель якості

image7

 

2.   Методи оцінки значень показників якості

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

За визначенням стандарту ISO метрика якості ПЗ це:

"Модель вимірювання атрибута, який пов'язують з показником його якості".

Для користування метриками при вимірювані показників якості даний стандарт дозволяє визначати наступні типи заходів:

v   Міри розміру – в різних одиницях вимірювань (кількість функцій, розмір програми, обсяг ресурсів та ін).

v   Міри часу — періоди реального, процесорного або календарного часу (час функціонування системи, час виконання компоненту, час використання).

v   Міри зусиль — продуктивний час, витрачений на реалізацію проекту (продуктивність роботи окремих учасників проекту).

v   Міри інтервалів між подіями, наприклад, час між послідовними відмовами.

v  Розрахункові міри — лічильники для визначення кількості виявлених помилок, структурної складності програми, кількості несумісних елементів, кількості змін (наприклад, число виявлених відмов та ін.).

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

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

Для опису оцінки значень показників якості використовуються наступні методи:

ü   Вимірювальний.

ü   Реєстраційний.

ü   Розрахункови.

ü   Експертний (а також комбінації цих методів).

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

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

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

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

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

 

3. Основні поняття в проблематиці надійності програмних систем

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

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

Для багатьох систем (програм і даних) надійність є головною цільовою функцією реалізації. Оцінка надійності ПЗ залежить від числа, що залишилося, і не усунених помилок в програмах на етапах ЖЦ. У ході експлуатації ПЗ помилки виявляються та усуваються. Якщо під час виправлення помилок не вносяться нові, або, принаймні, нових помилок вноситься менше, ніж усувається, то в ході експлуатації надійність ПЗ безперервно зростає. Чим інтенсивніше проводиться експлуатація, тим інтенсивніше виявляються помилки і швидше зростає надійність системи і, відповідно, її якість.

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

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

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

До факторів гарантії надійності належать:

v  Ризикяк сукупність загроз, що призводять до несприятливих наслідків і збитків системи або середовища.

v  Загрозаяк прояв нестійкості, що порушує безпеку системи.

v  Аналіз ризику — вивчення загрози або ризику, їх частота і наслідки.

v  Цілісність — здатність системи зберігати стійкість роботи і не мати ризику.

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

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

Моделі оцінки надійності

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

Основними даними є відмови і час. Інші додаткові параметри пов'язані з типом ПЗ, умовами середовища і даних.

З причини великої різноманітності моделей надійності, розроблено кілька підходів до класифікації цих моделей. Ці підходи, в цілому, грунтуються на історії помилок в ПЗ, що перевіряється і тестується на етапах ЖЦ. Однією з класифікацій моделей надійності ПЗ є класифікація Хетча. У ній пропонується розподіл моделей на: прогнозуючі, вимірювальні і оціночні (мал. 3).

Прогнозуючі моделі надійності засновані на вимірюванні технічних характеристик створюваної програми: довжина, складність, число циклів, кількість помилок на сторінку операторів програми та ін. Наприклад, модель Мотлі-Брукса грунтуються на довжині і складності структури програми (кількість розгалужень, циклів, вкладеність циклів), кількості і типах змінних, а також інтерфейсів. У цих моделях довжина програми служить для прогнозування кількості помилок, наприклад, для 100 операторів програми можна змоделювати інтенсивність відмов. Модель Холстеда дає прогнозування кількості помилок у програмі в залежності від її обсягу і таких даних, як число операцій (n1) і операндів (n2), а також їх загальне число (N1, N2).

 

image8

Мал. 3. Класифікація моделей надійності

 

Вимірювальні моделі призначені для вимірювання надійності програмного забезпечення, що працює з заданим зовнішнім середовищем і мають наступні обмеження:

Ø ПЗ не модифікується під час періоду вимірювань властивостей надійності.

Ø  Виявлені помилки не виправляються.

Ø  Вимірювання надійності проводиться для зафіксованої конфігурації програмного забезпечення.

Типовим прикладом таких моделей є модель Нельсона і Рамамурті-Бастані. Модель оцінки надійності Нельсона грунтується на виконанні к-прогонів програми під час тестування і дозволяє визначити надійність. Дана модель розглядає отримані кількісні дані про проведені прогони.

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

Ці типи моделей можуть застосовуватися на етапах ЖЦ. Крім того, результати прогнозуючих моделей можуть використовуватися як вхідні дані для оціночної моделі.

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

Інший вид класифікації моделей запропонував Гоел, відповідно до якої моделі надійності базуються на відмовах і розбиваються на чотири класи моделей:

Ø   без підрахунку помилок;

Ø   з підрахунком відмов;

Ø   з підсівом помилок;

Ø   моделі з вибором областей вхідних значень.

Моделі без підрахунку помилок засновані на вимірюванні інтервалу часу між відмовами і дозволяють спрогнозувати кількість помилок, що залишилися в програмі. Після кожної відмови оцінюється надійність і визначається середній час до наступної відмови. До такої моделі належить модель Джелінскі і Моранді, Шика-Вулвертона і Літвуда-Вералла.

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

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

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

Таким чином, класифікація моделей зростання надійності щодо процесу виявлення відмов, фактично розділена на дві групи: моделі, які розглядають кількість відмов як Марківський процесс; моделі, які розглядають інтенсивність відмов як Пуассонівський процес.

Фактор розподілу інтенсивності відмов поділяє моделі на експоненціальні, логарифмічні, геометричні, байєсівської.

 

Питання для самоконтролю:

1. Стандартна модель якості ПЗ.

2. Дати оцінку показникам якості в стандартній моделі якості.

3. Навести й описати методи оцінки значень показників якості.

4. Що відноситься до прогнозуючих моделей якості?

5. Схематично описати модель якості Мак-Кола.

6. Виділити основні характеристики, що є спільними для всіх моделей якості.   

7. Визначити сфери застосування моделі Боема, виділити її недоліки.