You are on page 1of 11

Метрики

оцінки складності
програмного забезпечення

Лекція 6

1
Короткий огляд лекції
1 Основні визначення

2 Метрики Холстеда

3 LOC - метрики

4 Цикломатична складність

5 Метрики Чепіна

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

Метрики розміру програми:


- кількість операторів програми
- кількість рядків вихідного тексту
- метрики Холстеда

4
Метрики Холстеда

Метрики Холстеда - метрики, які обчислюються на


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

Основу метрики Холстеда становлять вимірювані


характеристики програми, серед яких:
- число унікальних операторів програми, включаючи
розділяючі символи, імена процедур та знаки операцій
(NUOprtr)
- число унікальних операндів програми (NUOprnd)
- загальне число операторів програми (Noprtr)
- загальне число операндів програми (Noprnd)
5
Оцінки на основі метрик Холстеда

Словник програми
HPVoc = NUOprtr + NUOprnd
Довжина програми
HPLen = Noprtr + Noprnd
Об’ єм програми
HPVol = HPLen log2 HPVoc
Складність програми
HDiff = (NUOprtr/2) × (NOprnd / NUOprnd)
6
Метрики складності потоку управління програм

Метрики складності потоку управління програм - в основі цих


метрик лежить аналіз керуючого графу програми.
LOC-метрики - метрики, які обчислюються на підставі розрахунку
прямих оцінок кількості критеріїв коду, при цьому розглядається не
розмір, а функціональність або корисність продукту.
До LOC-метрик належать:
- кількість рядків вихідного коду
- кількість «фізичних» рядків коду
- кількість «логічних» рядків коду
- число порожніх рядків і число рядків, що містять коментарі
- відсоток коментарів
- середнє число рядків для функцій
- середнє число рядків, що містять вихідний код для функцій
- середнє число рядків для модулів 7
Цикломатична складність

Показник цикломатичної складності Маккейба -


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

8
Цикломатична складність

Якщо вихідний код програми не містить жодних точок


приняття рішень, як то IF чи FOR, то складність
рівняється одиниці, оскільки існує тільки один прохід
через код.
Граф потока управління програми - сильнозв'язаний
граф, в вузлах якого знаходяться групи команд, а
ребра з'єднують такі блоки, які можуть бути виконані
один за одним.
C=e–n+2p,
де e – число ребер, n – число вузлів, p – число
компонентів зв'язності на графі
9
Метрики складності потоків даних програм

Метрики складності потоків даних програм - в


основі цих метрик лежить визначення оцінки
використання, конфігурації та розташування даних в
програмі. Оцінці підлягають перш за все глобальні
змінні.
Метрики Чепіна - метрики, для яких вся множина змінних,
що складають список введення та виведення, розбивається
на чотири основні функціональні групи:
- множина “Р” - змінні, що вводяться для розрахунку та
забезпечення виведення.
- множина “М” - змінні, що модифікуються чи створюються
всередині програми. 10
Метрики Чепіна

- множина “С” - змінні, що приймають участь в


управлінні роботою програмного модулю.
- множина “Т” - змінні, що не використовуються в
програмі.
Оскількі змінні можуть виконувати одночасно декілька
функцій, то і враховувати їх необхідно в кожній
відповідній функціональній групі.
Розрахунок метрик виконується наступним чином:
Q=a1P+a2M+a3C+a4T,
де a1, a2, a3, a4 – вагові коефіцієнти
11

You might also like